【发布时间】:2010-04-26 19:37:07
【问题描述】:
我知道还有很多其他类似的问题,但是那里提出的解决方案都不适合我
基本上,制作 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 -> ... 没有出现感到困惑
我一定遗漏了一些非常明显的东西。有什么想法吗?
【问题讨论】:
-
通过谷歌找到了这个问题。由于 3 年后我现在遇到了类似的问题,我想我会记下我的解决方案:至少对于 CUDA 5.0 SDK 示例和我当前的驱动程序 (304.64),这个问题可以通过使用
make EXTRA_LDFLAGS="-L /usr/lib64/nvidia"(switch lib64 用于 32 位系统上的 lib)。链接器在 /usr/lib(64) 中查找,但驱动程序在 usr/lib(64)/nvidia 中安装了东西,但提供的 makefile 使用了EXTRA_LDFLAGS。
标签: c++ compiler-construction makefile cuda linker-errors