我有两个与同一问题相关的问题:
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
再次它工作正常!关于我做错了什么的任何想法? export LD_LIBRARY_PATH=/path/to/stuff
然后输入 echo $LD_LIBRARY_PATH
,变量正确。但是,如果我编写一个包含导出命令的脚本,只需运行它并不会更新变量,而是需要运行 source install.sh
为了实际持久化变量。什么是最好的解决方案? 感谢您的时间!
最佳答案
回答第二个先提问:source
在当前 shell 中执行脚本,./install.sh
在不同的 shell 中打开并执行它。
http://www.unix.com/unix-dummies-questions-answers/537-difference-between-source-exec-script.html
现在回答你的第一个问题:LD_LIBRARY_PATH=$LD_LIBRARY_PATH ./test
仅在一个命令(./test
命令)之前设置 LD_LIBRARY_PATH 变量。出于同样的原因,我相信这不会转移到任何 shell ./test
创造。为了让它持续存在,你可能需要把 export LD_LIBRARY_PATH=...
在您的 ~/.bashrc
关于g++ - 设置 LD_LIBRARY_PATH 环境变量以在运行时加载共享库 (g++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15729137/