如何解决在本地编译torch7包时出现的“luarocks make”错误?

我正在尝试从GitHub spectral-lib(Ubuntu 14.04, cuda 7.0, 安装了torch7)构建一个用torch7(C,cuda,lua)编写的包。我使用以下命令进行构建: luarocks make --local.

然而,出现了以下奇怪的错误:

...
扫描目标的依赖关系 spectralnet
[100%] 正在构建 CXX 对象 CMakeFiles/spectralnet.dir/cuda/cufft.cpp.o
链接 CXX 共享模块 libspectralnet.so
/usr/bin/ld: 找不到 -lcufft
collect2: 错误:ld 返回了 1
make[2]: *** [libspectralnet.so] 错误 1
make[1]: *** [CMakeFiles/spectralnet.dir/all] 错误 2
make: *** [all] 错误 2

我可以发现“ libcufft.so”在“/usr/local/cuda/lib64”中。也许这个错误与CMakeLists.txt有关,但我不熟悉它。有人能帮我吗?

点赞
用户5576325
用户5576325

通过修改 CMakeLists.txt 解决了问题。我将 libcufft.so 复制到 ./cuda 目录中,然后添加:

SET(PROJECT_LINK_LIBS libcufft.so )
LINK_DIRECTORIES(/net/wanggu/spectral-lib/cuda)

作者的 CMakeLists.txt 中可能存在一些与 cuda 动态库方向有关的问题。可能存在一些更好的解决方案,但目前这是一个临时解决方案。

2016-03-13 13:52:34