鱼壳似乎在忽略LD_LIBRARY_PATH?

Sté*_*ane 1 shell ubuntu fish

我需要设置LD_LIBRARY_PATHCUDA下水前暗网。看起来像这样:

echo $LD_LIBRARY_PATH
/usr/local/cuda/lib64
Run Code Online (Sandbox Code Playgroud)

当应用程序启动时,它无法加载应该在该目录中找到的库:

./darknet 
./darknet: error while loading shared libraries: libcudart.so.10.0:
cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是该库肯定在该目录中:

ldd /usr/local/cuda/lib64/libcudart.so.10.0
    linux-vdso.so.1 =>  (0x00007ffe7bf2d000)
    ...etc...
Run Code Online (Sandbox Code Playgroud)

我假设我在鱼中未正确设置LD_LIBRARY_PATH。这是我最初在鱼中做的方式:

set -U LD_LIBRARY_PATH /usr/local/cuda/lib64
echo $LD_LIBRARY_PATH
/usr/local/cuda/lib64
Run Code Online (Sandbox Code Playgroud)

当我在bash中尝试完全相同的事情时,它可以正常工作

bash
export LD_LIBRARY_PATH=/usr/local/cuda/lib64
./darknet 
usage: ./darknet <function>
Run Code Online (Sandbox Code Playgroud)

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

Aus*_*ler 5

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

set -Ux LD_LIBRARY_PATH /usr/local/cuda/lib64
./darknet 
Run Code Online (Sandbox Code Playgroud)