我知道还有很多类似的问题,但是那里提出的解决方案都没有为我工作
基本上,制作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 -> ...
没有出现的原因感到困惑
我必须遗漏一些非常明显的东西。有什么想法吗?
答案 0 :(得分:7)
ldconfig
仅处理运行时库,而ld
处理构建时库。根据您安装CUDA库的方式,您可能需要为构建时使用的符号链接安装一个额外的包,或者您可能需要将-L
选项传递给gcc或ld以告知其构建位置 - 时间符号链接是。
答案 1 :(得分:7)
添加到.bash_profile
export PATH=/usr/local/cuda/bin:$PATH
export LPATH=/usr/lib/nvidia-current:$LPATH
export LIBRARY_PATH=/usr/lib/nvidia-current:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/lib/nvidia-current:/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH
和source .bash_profile
答案 2 :(得分:1)
尝试在编译器/链接器命令行上的-lcuda之前添加-L / usr / local / cuda / lib。