shell - fish shell 似乎忽略了 LD_LIBRARY_PATH?

标签 shell ubuntu fish

我需要设置LD_LIBRARY_PATH对于 CUDA发布前darknet .看起来像这样:

echo $LD_LIBRARY_PATH
/usr/local/cuda/lib64

当应用程序启动时,它无法加载它应该在该目录中找到的库:
./darknet 
./darknet: error while loading shared libraries: libcudart.so.10.0:
cannot open shared object file: No such file or directory

但是该库肯定在该目录中:
ldd /usr/local/cuda/lib64/libcudart.so.10.0
    linux-vdso.so.1 =>  (0x00007ffe7bf2d000)
    ...etc...

我假设我没有在 fish 中正确设置 LD_LIBRARY_PATH。这就是我最初在 fish 中的做法:
set -U LD_LIBRARY_PATH /usr/local/cuda/lib64
echo $LD_LIBRARY_PATH
/usr/local/cuda/lib64

当我在 bash 中尝试完全相同的东西时,它工作正常 :
bash
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
./darknet 
usage: ./darknet <function>

所有这些都在运行 fish 2.2.0 和 bash 4.3.48 的 64 位 Ubuntu 16.04.6 上。

最佳答案

你没有导出你的变量。相反,请执行以下操作:

set -Ux LD_LIBRARY_PATH /usr/local/cuda/lib64
./darknet 

关于shell - fish shell 似乎忽略了 LD_LIBRARY_PATH?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57502104/

相关文章:

Ubuntu 和 Linux Mint 以及要使用的 Web 开发软件

Python Nginx 生产超时

fish - 有条件地在 fish 中设置局部变量

string - 如何将fish shell中的字符串大写?

shell - 在 Debian 中的 bash 中创建存档文件,无需安装软件

linux - bash中的“for option”和bash中的echo

linux - 删除linux中几乎所有的目录和文件

fish - fish shell 自动目录特定功能

linux - 有没有更快的方法来 grep 模式或提高 while 循环的速度?

python - 在 Windows 上的 Emacs 中运行 Python