自己写了一个共享库,其中用到了第三方的共享库(用的是隐式链接,include头文件的那种)。编译完成之后,本机能够运行。但是将程序安装到其他机器后,由于第三方的共享库的路径与编译时侯的不一样,结果就提示找不到共享库。 将第三方的共享库就是放到/usr/lib;/usr/local/lib里面,依然提示找不到。 简单的来说,就是程序认定了去编译链接时候的共享库路径了,其他如LD_LIBRARY_PATH,ldconfig的方法,包括放到/usr/lib目录等等方法,都不行。 不知道是不是在编译的时候,限定了共享库的搜索路径,因为用codeblocks作为IDE,还没摸清gcc的那些编译选项在哪里。
[email protected]:~/TradeBlazer/TradeServer$ ldd ./teller/libTellerHSN.so
linux-gate.so.1 => (0xb7735000)
/home/liukz/svn/TBPlatformServer/ThirdPart/bin/HSN/linux.i386/libhsfutusdk.so => not found(编译时候的路径里面没有,提示 not found)
/home/liukz/svn/TBPlatformServer/ThirdPart/bin/HSN/linux.i386/libt2sdk.so (0xb7390000)(这个路径里面有的就能找到)
libIce.so.34 => /usr/lib/libIce.so.34 (0xb70d8000)
libIceBox.so.34 => /usr/lib/libIceBox.so.34 (0xb709c000)
libIceUtil.so.34 => /usr/lib/libIceUtil.so.34 (0xb705c000)
libIceStorm.so.34 => /usr/lib/libIceStorm.so.34 (0xb7022000)
libGlacier2.so.34 => /usr/lib/libGlacier2.so.34 (0xb6f7e000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb6e98000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb6e7a000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb6cd5000)
libcrypto.so.4 => /usr/lib/libcrypto.so.4 (0xb6b57000)
libssl.so.4 => /usr/lib/libssl.so.4 (0xb6b08000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb6adb000)
libbz2.so.1.0 => /lib/i386-linux-gnu/libbz2.so.1.0 (0xb6aca000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb6ac5000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb6aaa000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb6aa1000)
/lib/ld-linux.so.2 (0xb7736000)