链接 CXX 可执行文件时出错

Error linking CXX executables

我刚刚在构建咖​​啡时有一个奇怪的经历..

我执行了 make --jobs=4 并且它 运行 一切顺利,直到达到 92%。然后,当它链接 CXX 可执行文件 compute_image_meanconvert_image setextract_featurescaffe 时,它抛出了错误 ../lib/libcaffe.so.1.0.0-rc3: undefined reference to 'cudnnConvolutionBackwardData_v3'.

让我担心的是,我之前已经成功构建了caffe,具有相同的安装,相同的路径,相同的设备..基本上一切都相同。究竟是怎么回事?我昨天没有接触过 cudnn 并安装了 DIGITS。我有一些安装错误,因为 caffe 路径没有被识别(这就是为什么我在这里重新构建它),但是它对 cudnn 的要求没有问题,这证明 cudnn 没有问题。

除了关于如何修复它的建议之外,我想知道 caffe 是否自动重置它的路径 ovver time 或类似的东西。

操作系统:Ubuntu 14.04 LTS CUDA 版本:7.5

完整输出:

Linking CXX shared library ../../lib/libcaffe.so
[ 90%] Built target caffe
Scanning dependencies of target caffe.bin
[ 91%] Building CXX object tools/CMakeFiles/caffe.bin.dir/caffe.cpp.o
Linking CXX executable caffe
../lib/libcaffe.so.1.0.0-rc3: undefined reference to `cudnnConvolutionBackwardData_v3'
../lib/libcaffe.so.1.0.0-rc3: undefined reference to `cudnnConvolutionBackwardFilter_v3'
collect2: error: ld returned 1 exit status
make[2]: *** [tools/caffe] Error 1
make[1]: *** [tools/CMakeFiles/caffe.bin.dir/all] Error 2
make: *** [all] Error 2

谢谢

我在 Ubuntu 16.04,CUDA 8.0 上遇到了同样的问题。

我刚刚通过删除两个函数的 _v3 来编辑文件 src/caffe/layers/cudnn_conv_layer.cu,错误消失了。

不是最合理的解决方案,但值得一试。