установка caffe зависла при связывании общей библиотеки CXX ../../lib/libcaffe.so

Я столкнулся с проблемой при попытке собрать caffe с помощью cmake (попробовал 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)
-- 

Может ли кто-нибудь посоветовать? Пожалуйста, дайте мне знать, если потребуется дополнительная информация. Большое спасибо заранее!


person moonlightlane    schedule 08.10.2016    source источник
comment
Есть некоторая проблема с путями ваших библиотек, что приводит к проблемам с общими библиотеками: попробуйте это и проверьте также пути других библиотек: export LD_LIBRARY_PATH=/usr/local/cuda/lib64/   -  person Jayant Agrawal    schedule 08.10.2016
comment
@JayantAgrawal Спасибо за комментарий! Я попробовал этот путь и все еще имел ту же проблему. Есть ли способ найти этот файл opencv_dep_cudart? Я попытался найти opencv_dep_cudart и не смог его найти.   -  person moonlightlane    schedule 08.10.2016


Ответы (2)


У меня была аналогичная проблема. Решения, найденные на онлайн-форумах (например, использование set(CUDA_USE_STATIC_CUDA_RUNTIME OFF) в CMakeLists.txt), не решили мою проблему. Но вы можете взломать свои файлы cmake, чтобы обойти эту ошибку.

Шаги

  1. Включите подробное описание в cmake, используя set(CMAKE_VERBOSE_MAKEFILE ON)
  2. do a make | grep lopencv_dep_cudart
  3. Команда, выполняющая связывание, будет выделять строку. Запишите путь к файлу cmake со строкой поиска.
  4. Скопируйте команду и запустите ее в оболочке по указанному выше пути, но без параметра -lopencv_dep_cudart. Надеюсь команда выполнится без ошибок
  5. Теперь снова запустите make.
person Vinmean    schedule 04.01.2017

Я столкнулся с той же проблемой. Я нахожу флаг -lopencv_dep_cudart в файле OpenCVModules-release.cmake, который используется Find_package(OpenCV): OpenCVModules-release.cmake

Я решил эту проблему, используя модуль FindPkgConfig cmake для поиска библиотек 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.

person Ann    schedule 22.08.2018