尝试“制作”CUDA SDK,ld 找不到库,ldconfig 说可以

问题描述 投票:0回答:3

我知道还有很多其他与此类似的问题,但其中提出的解决方案都不适合我

基本上,制作 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 -> ...
没有出现

我一定错过了一些非常明显的东西。有什么想法吗?

c++ makefile cuda linker-errors
3个回答
8
投票

ldconfig
仅处理运行时库,而
ld
处理构建时库。根据您安装 CUDA 库的方式,您可能需要为构建时使用的符号链接安装额外的包,或者您可能需要将
-L
选项传递给 gcc 或 ld 以告诉它构建时符号链接的位置是。


8
投票

添加到.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

和源.bash_profile


1
投票

尝试在编译器/链接器命令行上的 -lcuda 之前添加 -L/usr/local/cuda/lib 。

© www.soinside.com 2019 - 2024. All rights reserved.