1

我正在尝试使用 cufft.so 库在 nsight 中构建一个项目,但是链接器(ld)找不到库文件,我很困惑。

该库安装为 /usr/local/cuda/lib64/libcufft.so

在项目属性中,我转到“General->Paths and Symbols->Libraries”选项卡并添加了/usr/local/cuda/lib64/libcufft.so,并且为了更好的措施,转到“Libraries Paths”选项卡并添加了/usr/本地/cuda/lib64

确切的错误是

Finished building: ../main.cu

Building target: cufftTest2
Invoking: NVCC Linker
/usr/local/cuda-5.5/bin/nvcc --cudart static -L/usr/local/cuda/lib64 -link -o  "cufftTest2"  ./main.o   -l/usr/local/cuda/lib64/libcufft.so
/usr/bin/ld: cannot find -l/usr/local/cuda/lib64/libcufft.so
collect2: error: ld returned 1 exit status
make: *** [cufftTest2] Error 1

并且环境路径配置为:

echo $LD_LIBRARY_PATH
/usr/local/cuda/lib64:
echo $PATH
/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
echo $MANPATH
/usr/local/cuda/man:

我确定我做了一些愚蠢的事情,但我不知道为什么 ld 找不到 /usr/local/cuda/lib64/libcufft.so

有人能帮忙吗?

4

1 回答 1

2

只需cufft用作库,以便它-lcufft在实际的链接器命令行中显示。

nvcc 用于主机代码编译和链接的 gcc 链接器期望库如下所示:

图书馆:

/path/to/library/libmystuff.so

链接器开关:

-L/path/to/library/
-lmystuff

(注意lib前缀和.so后缀被去掉了)

于 2013-08-22T00:13:46.237 回答