【发布时间】:2013-03-31 11:57:22
【问题描述】:
我遇到了与同一问题相关的两个问题:
我有一个共享对象保存在 `pwd`/lib 中,虽然使用它的可执行文件编译成功(通过使用 -l 和 -L 开关),但在运行时,它让我很伤心。如果我尝试运行
LD_LIBRARY_PATH=/my/absolute/path/to/library/directory ./test它工作正常。但是,如果我导出 LD_LIBRARY_PATH=/my/absolute/path/to/library/directory 并执行./test它说它找不到共享库。但是,如果我再次使用LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./test,它就可以正常工作了!!关于我做错了什么有什么想法吗?第二个问题与 LD_LIBRARY_PATH 环境变量的导出有关。如果我打开终端并输入
export LD_LIBRARY_PATH=/path/to/stuff,然后输入echo $LD_LIBRARY_PATH,则变量是正确的。但是,如果我编写一个包含导出命令的脚本,只需运行它并不会更新变量,而是需要运行source install.sh才能真正持久化变量。最好的解决方案是什么?
感谢您的宝贵时间!
【问题讨论】:
标签: g++ environment-variables dynamic-linking dynamic-library