Bol*_*ter 11 c++ compiler-construction cuda makefile linker-errors
我知道还有许多类似于这个的问题,但是那里提出的解决方案都没有为我工作
基本上,制作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
Run Code Online (Sandbox Code Playgroud)
我检查过,有一个符号链接,libcuda.so -> libcuda.so.1但我仍然感到困惑,为什么libcuda.so -> ...不显示
我必须遗漏一些非常明显的东西.有任何想法吗?
ldconfig仅处理运行时库,而ld处理构建时库.根据您安装CUDA库的方式,您可能需要为构建时使用的符号链接安装一个附加包,或者您可能需要将-L选项传递给gcc或ld,以告诉它构建时间符号链接的位置.
小智 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
Run Code Online (Sandbox Code Playgroud)
和源.bash_profile