LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 829|回复: 1

[请教]发布程序时的LDFLAGS设置问题

[复制链接]
发表于 2009-7-30 16:29:30 | 显示全部楼层 |阅读模式
我自己的机器是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的。
发表于 2009-7-30 16:37:54 | 显示全部楼层
/etc/env.d底下写一个较高等级的声明,比如00rpath什么的,然后在里面写LDPATH=xxx这样子,env-update以后应该就可以了吧?

我的LD_LIBRARY_PATH就是这样设置的,找自己的一个库
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表