LD_LIBRARY_PATH 在 .zshrc 中设置时未使用

LD_LIBRARY_PATH not being used when set in .zshrc

在我的 .zshrc 文件中有以下行:

export LD_LIBRARY_PATH='~/.local/lib'

我可以通过从命令行回显变量来确认变量已正确设置:

> echo $LD_LIBRARY_PATH
~/.local/lib

我有一个程序需要一个库,foo.so.1,可以在这个本地 lib 目录中找到。 运行直接从命令行失败:

> bar -v 123
bar: error when loading shared libraries: foo.so.1: cannot open shared object file: No such file or directory

但是,如果我在 运行 命令之前手动设置 LD_LIBRARY_PATH,则一切正常:

> LD_LIBRARY_PATH=~/.local/lib bar -v 123
Success!

我的问题是:为什么在 运行 命令之前设置变量有效,而在 .zshrc 中设置它却失败了?

请确保为您的 env 变量分配了扩展到您的主目录的“~”路径,因为在读取变量时不会发生这种扩展。

您的(修改后的)代码使用了单引号。这些将阻止扩展发生。