(Developer环境:CentOS的4.7,KDevelop的3.1.1,3.4.6 GCC)加载C++通过Java过程在Linux给错误共享库
我创建一个C++共享库,并使用该共享库的测试可执行。事情工作正常。
但是,当我通过Java加载这个库,即Java调用JNI,然后加载这个共享库时,有一个错误,指出“* glibc检测到* free():invalid next size”。应用程序在此之后退出。这个错误出现在共享库的加载阶段。
任何人都可以提出可能的原因是什么?
我正在使用Java版本1.6.0_17(版本1.6.0_17-b04)。这个版本和C/C++运行时库之间可能存在兼容性问题吗?
[否则转-q显示我的机器上的glibc-2.3.4-2.41和libstdC++ glibc版本版本的libstdC++ - 3.4.6-10
ldd of shared library shows the following,
libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00173000)
libssl.so.4 => /lib/libssl.so.4 (0x00286000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00185000)
libm.so.6 => /lib/tls/libm.so.6 (0x00111000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00134000)
libc.so.6 => /lib/tls/libc.so.6 (0x002ba000)
/lib/ld-linux.so.2 (0x008a4000)
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x00785000)
libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x003e9000)
libcom_err.so.2 => /lib/libcom_err.so.2 (0x0013e000)
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x006ae000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00672000)
libcrypto.so.4 => /lib/libcrypto.so.4 (0x0044e000)
libdl.so.2 => /lib/libdl.so.2 (0x00540000)
libz.so.1 => /usr/lib/libz.so.1 (0x00141000)
]