我在尝试使用cmake构建caffe时遇到了一个问题(尝试使用cmake,因为make经常给我错误,但事实证明cmake没有更好......)。以下是错误消息:
[ 82%] Linking CXX shared library ../../lib/libcaffe.so
/usr/bin/ld: cannot find -lopencv_dep_cudart
collect2: error: ld returned 1 exit status
src/caffe/CMakeFiles/caffe.dir/build.make:3284: recipe for target 'lib/libcaffe.so.1.0.0-rc3' failed
make[2]: *** [lib/libcaffe.so.1.0.0-rc3] Error 1
CMakeFiles/Makefile2:272: recipe for target 'src/caffe/CMakeFiles/caffe.dir/all' failed
make[1]: *** [src/caffe/CMakeFiles/caffe.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
我尝试在线搜索,但没有找到与丢失-lopencv_dep_cudart
相关的更多信息。
我正在运行Ubuntu 16.04。 gcc和gcc ++版本都是4.9。安装了Opencv,其版本为2.4.13。下面是cmake ..
输出的一部分,它显示了caffe的依赖关系(我想我已经安装了所有依赖项):
-- Dependencies:
-- BLAS : Yes (Atlas)
-- Boost : Yes (ver. 1.58)
-- glog : Yes
-- gflags : Yes
-- protobuf : Yes (ver. 3.0.2)
-- lmdb : Yes (ver. 0.9.17)
-- LevelDB : Yes (ver. 1.18)
-- Snappy : Yes (ver. 1.1.3)
-- OpenCV : Yes (ver. 2.4.13)
-- CUDA : Yes (ver. 8.0)
--
-- NVIDIA CUDA:
-- Target GPU(s) : Auto
-- GPU arch(s) : sm_61
-- cuDNN : Yes (ver. 5.1.5)
--
-- Python:
-- Interpreter : /usr/bin/python2.7 (ver. 2.7.12)
-- Libraries : /usr/lib/x86_64-linux-gnu/libpython2.7.so (ver 2.7.12)
-- NumPy : /home/jack/.local/lib/python2.7/site-packages/numpy/core/include (ver 1.11.1)
--
有人可以提供建议吗?如果需要更多信息,请告诉我。非常感谢提前!
答案 0 :(得分:1)
我有类似的问题。在线论坛中找到的解决方案(例如在set(CUDA_USE_STATIC_CUDA_RUNTIME OFF)
中使用CMakeLists.txt
)并没有解决我的问题。但是你可以破解你的cmake文件来解决这个错误。
步骤
set(CMAKE_VERBOSE_MAKEFILE ON)
make | grep lopencv_dep_cudart
-lopencv_dep_cudart
选项。希望命令能够无错误地执行答案 1 :(得分:0)
我遇到了同样的问题。我在文件{strong> OpenCVModules-release.cmake 中找到了-lopencv_dep_cudart
标志,Find_package(OpenCV)
使用了该标志:
OpenCVModules-release.cmake
我通过使用cmake的FindPkgConfig模块找到OpenCV库来解决了这个问题:
# firstly, add your/path/to/opencv.pc to system environment variable PKG_CONFIG_PATH
# modify the file Dependencies.cmake
find_package(PkgConfig REQUIRED)
pkg_check_modules(OpenCV REQUIRED opencv)
include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS})
list(APPEND Caffe_LINKER_LIBS opencv_core opencv_highgui opencv_imgproc)
或者,您也可以直接将OpenCV_INCLUDE_DIRS和OpenCV_LIBS设置为您的OpenCV路径。