|
|
我自己的机器是funtoo,GCC是4.3.3,libstdc++为6.0.10;而目标集群是centos 5.2,GCC为4.1.2,libstdc++为6.0.8,在目录/usr/lib64下;现在因为其他库需要用到libstdc++.so.6.0.10,需要把这个也拷贝到目标机器上(所以不能搞静态链接了)。
为了简化使用,我在LDFLAGS里设置了"-Wl,-R,'${ORIGIN}/../lib -Wl,-rpath,'${ORIGIN}/../lib"让bin下的executable自己去找下级目录中的动态链接库。用ldd测试,程序可以找到正确的local lib path下找到libc,librt,libdl,libpthread,但就是libstdc++被LD_LIBRARY_PATH里设置的/usr/lib64所劫持。
请问有没有什么方法不改LD_LIBRARY_PATH,直接全部按照RPATH/RUNPATH找库?
别告诉只能另写个shell文件,里面加上 LD_LIBRARY_PATH="" `dirname $0`/_`basename $0` $*了,应该有其它办法,向大家求教了.
PS:我记得怎么以前是RPATH/RUNPATH覆盖LD_LIBRARY_PATH的。 |
|