我知道有许多类似于这个问题的其他问题,但那里提出的解决方案都对我不起作用。
基本上,当我制作SDK示例文件时,我会得到/usr/bin/ld: cannot find -lcuda
,这本来是一个很容易的“找到库并将其传递给ldconfig”的问题,但是ldconfig已经说它拥有它了...
$ sudo ldconfig -v | grep cuda
/usr/local/cuda/lib64:
libcudartemu.so.3 -> libcudartemu.so.3.0.14
libcudart.so.3 -> libcudart.so.3.0.14
/usr/local/cuda/lib:
libcudartemu.so.3 -> libcudartemu.so.3.0.14
libcudart.so.3 -> libcudart.so.3.0.14
libcuda.so.1 -> libcuda.so.195.36.15
libcuda.so.1 -> libcuda.so.195.36.15
libicudata.so.42 -> libicudata.so.42.1
我检查过了,存在一个符号链接libcuda.so -> libcuda.so.1
,但是我仍然不明白为什么libcuda.so -> ...
没有显示出来。
我一定错过了某些非常显然的东西。有任何想法吗?
make EXTRA_LDFLAGS="-L /usr/lib64/nvidia"
(32位系统上将lib64替换为lib)来解决此问题。连接器正在查找 /usr/lib(64),但驱动程序安装在 usr/lib(64)/nvidia 中,而提供的 makefile 使用了EXTRA_LDFLAGS
。 - Sam