我需要设置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/