执行“make test”命令时出现 Caffe OpenCV 3.1/Boost 错误

Caffe OpenCV 3.1/Boost error when performing `make test` command

我正在尝试在支持 GPU(CUDA 8.0、CuDNN、OpenCV 3.1)的 Ubuntu 16.04 上安装 Caffe

当我运行sudo make test构建Caffe时,出现如下错误:

.....................................

CXX src/caffe/test/test_net.cpp

NVCC src/caffe/test/test_im2col_kernel.cu

nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use
-Wno-deprecated-gpu-targets to suppress warning).

nvcc warning : The 'compute_20', 'sm_20', and 'sm_21' architectures are deprecated, and may be removed in a future release (Use
-Wno-deprecated-gpu-targets to suppress warning).

CXX src/gtest/gtest-all.cpp

CXX/LD -o .build_release/test/test_all.testbin src/caffe/test/test_caffe_main.cpp

.build_release/src/caffe/test/test_gradient_based_solver.o: In function `caffe::MakeTempDir(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)':

test_gradient_based_solver.cpp:(.text._ZN5caffe11MakeTempDirEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN5caffe11MakeTempDirEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x56): undefined reference to `boost::filesystem::detail::temp_directory_path(boost::system::error_code*)'

test_gradient_based_solver.cpp:(.text._ZN5caffe11MakeTempDirEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN5caffe11MakeTempDirEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x8a): undefined reference to `boost::filesystem::path::operator/=(boost::filesystem::path const&)' test_gradient_based_solver.cpp:

(.text._ZN5caffe11MakeTempDirEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN5caffe11MakeTempDirEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x124): undefined reference to `boost::filesystem::detail::unique_path(boost::filesystem::path const&, boost::system::error_code*)'

test_gradient_based_solver.cpp:(.text._ZN5caffe11MakeTempDirEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN5caffe11MakeTempDirEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x15a): undefined reference to `boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*)'

.build_release/src/caffe/test/test_hdf5_output_layer.o: In function `caffe::MakeTempFilename(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)': test_hdf5_output_layer.cpp:

(.text._ZN5caffe16MakeTempFilenameEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE[_ZN5caffe16MakeTempFilenameEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE]+0x1d4): undefined reference to `boost::filesystem::path::operator/=(boost::filesystem::path const&)' .build_release/src/caffe/test/test_db.o: In function `caffe::DBTest<caffe::TypeLevelDB>::SetUp()': test_db.cpp:

(.text._ZN5caffe6DBTestINS_11TypeLevelDBEE5SetUpEv[_ZN5caffe6DBTestINS_11TypeLevelDBEE5SetUpEv]+0x7f): undefined reference to `boost::filesystem::detail::temp_directory_path(boost::system::error_code*)'

test_db.cpp:(.text._ZN5caffe6DBTestINS_11TypeLevelDBEE5SetUpEv[_ZN5caffe6DBTestINS_11TypeLevelDBEE5SetUpEv]+0xaf): undefined reference to `boost::filesystem::path::operator/=(boost::filesystem::path const&)'

test_db.cpp:

(.text._ZN5caffe6DBTestINS_11TypeLevelDBEE5SetUpEv[_ZN5caffe6DBTestINS_11TypeLevelDBEE5SetUpEv]+0x163): undefined reference to `boost::filesystem::detail::unique_path(boost::filesystem::path const&, boost::system::error_code*)'

test_db.cpp:

(.text._ZN5caffe6DBTestINS_11TypeLevelDBEE5SetUpEv[_ZN5caffe6DBTestINS_11TypeLevelDBEE5SetUpEv]+0x19d): undefined reference to `boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*)'

.build_release/src/caffe/test/test_db.o: In function `caffe::DBTest<caffe::TypeLMDB>::SetUp()': test_db.cpp:(.text._ZN5caffe6DBTestINS_8TypeLMDBEE5SetUpEv[_ZN5caffe6DBTestINS_8TypeLMDBEE5SetUpEv]+0x7f): undefined reference to `boost::filesystem::detail::temp_directory_path(boost::system::error_code*)'

test_db.cpp:(.text._ZN5caffe6DBTestINS_8TypeLMDBEE5SetUpEv[_ZN5caffe6DBTestINS_8TypeLMDBEE5SetUpEv]+0xaf): undefined reference to `boost::filesystem::path::operator/=(boost::filesystem::path const&)'

test_db.cpp:

(.text._ZN5caffe6DBTestINS_8TypeLMDBEE5SetUpEv[_ZN5caffe6DBTestINS_8TypeLMDBEE5SetUpEv]+0x163): undefined reference to `boost::filesystem::detail::unique_path(boost::filesystem::path const&, boost::system::error_code*)'

test_db.cpp:

(.text._ZN5caffe6DBTestINS_8TypeLMDBEE5SetUpEv[_ZN5caffe6DBTestINS_8TypeLMDBEE5SetUpEv]+0x19d): undefined reference to `boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*)' .build_release/src/caffe/test/test_upgrade_proto.o: In function `caffe::NetUpgradeTest_TestUpgradeV1LayerType_Test::TestBody()': test_upgrade_proto.cpp:(.text+0x2a21): undefined reference to `boost::filesystem::detail::temp_directory_path(boost::system::error_code*)'

test_upgrade_proto.cpp:(.text+0x2a5b): undefined reference to `boost::filesystem::path::operator/=(boost::filesystem::path const&)' test_upgrade_proto.cpp:(.text+0x2b04): undefined reference to `boost::filesystem::detail::unique_path(boost::filesystem::path const&, boost::system::error_code*)'

test_upgrade_proto.cpp:(.text+0x2b43): undefined reference to `boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*)'

.build_release/src/caffe/test/test_layer_factory.o: In function `caffe::LayerFactoryTest_TestCreateLayer_Test<caffe::CPUDevice<float>
>::TestBody()':

test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIfEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIfEEE8TestBodyEv]+0x4d9): undefined reference to `boost::filesystem::detail::temp_directory_path(boost::system::error_code*)'

test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIfEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIfEEE8TestBodyEv]+0x513): undefined reference to `boost::filesystem::path::operator/=(boost::filesystem::path const&)' test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIfEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIfEEE8TestBodyEv]+0x5c4): undefined reference to `boost::filesystem::detail::unique_path(boost::filesystem::path const&, boost::system::error_code*)'

test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIfEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIfEEE8TestBodyEv]+0x603): undefined reference to `boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*)'

.build_release/src/caffe/test/test_layer_factory.o: In function `caffe::LayerFactoryTest_TestCreateLayer_Test<caffe::CPUDevice<double>
>::TestBody()':

test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIdEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIdEEE8TestBodyEv]+0x4c1): undefined reference to `boost::filesystem::detail::temp_directory_path(boost::system::error_code*)'

test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIdEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIdEEE8TestBodyEv]+0x4fb): undefined reference to `boost::filesystem::path::operator/=(boost::filesystem::path const&)' test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIdEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIdEEE8TestBodyEv]+0x5a4): undefined reference to `boost::filesystem::detail::unique_path(boost::filesystem::path const&, boost::system::error_code*)'

test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIdEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9CPUDeviceIdEEE8TestBodyEv]+0x5e3): undefined reference to `boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*)' .build_release/src/caffe/test/test_layer_factory.o: In function `caffe::LayerFactoryTest_TestCreateLayer_Test<caffe::GPUDevice<float>
>::TestBody()':

test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIfEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIfEEE8TestBodyEv]+0x4d9): undefined reference to `boost::filesystem::detail::temp_directory_path(boost::system::error_code*)' test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIfEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIfEEE8TestBodyEv]+0x513): undefined reference to `boost::filesystem::path::operator/=(boost::filesystem::path const&)'

test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIfEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIfEEE8TestBodyEv]+0x5c4): undefined reference to `boost::filesystem::detail::unique_path(boost::filesystem::path const&, boost::system::error_code*)'

test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIfEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIfEEE8TestBodyEv]+0x603): undefined reference to `boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*)' .build_release/src/caffe/test/test_layer_factory.o: In function `caffe::LayerFactoryTest_TestCreateLayer_Test<caffe::GPUDevice<double>
>::TestBody()': test_layer_factory.cpp:(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIdEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIdEEE8TestBodyEv]+0x4c1): undefined reference to `boost::filesystem::detail::temp_directory_path(boost::system::error_code*)'

test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIdEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIdEEE8TestBodyEv]+0x4fb): undefined reference to `boost::filesystem::path::operator/=(boost::filesystem::path const&)' test_layer_factory.cpp:(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIdEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIdEEE8TestBodyEv]+0x5a4): undefined reference to `boost::filesystem::detail::unique_path(boost::filesystem::path const&, boost::system::error_code*)'

test_layer_factory.cpp:

(.text._ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIdEEE8TestBodyEv[_ZN5caffe37LayerFactoryTest_TestCreateLayer_TestINS_9GPUDeviceIdEEE8TestBodyEv]+0x5e3): undefined reference to `boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::system::error_code*)'

collect2: error: ld returned 1 exit status

Makefile:599: recipe for target '.build_release/test/test_all.testbin' failed

make: *** [.build_release/test/test_all.testbin] Error 1

查了半天,发现应该是OpenCV的问题,但是不知道怎么解决。

我从 this tutorial..

之后的源代码构建了 OpenCV 3.1

我在 Python 2.7 中使用 Anaconda2,并且我使用 conda(我称之为 deep-learning)创建了虚拟环境,所以当我 运行 python 命令并检查 OpenCV 版本,我得到以下输出:

(deep-learning) ➜  caffe git:(master) ✗ python
Python 2.7.12 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:42:40) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org
>>> import cv2
>>> print cv2.__version__
3.1.0

此外,我可以运行 opencv_version 文件来验证版本:

(deep-learning) ➜  caffe git:(master) ✗ /usr/local/bin/opencv_version 
3.1.0-dev

这是我构建 Caffe 的过程(假设我在 Caffe 根文件夹中):

sudo make clean
mkdir build
cd build
sudo cmake ..
cd ..
sudo make all
sudo make test

所有命令 运行 成功,除了 sudo make test,它给出了上述错误。

这是 运行ning sudo cmake .. 的输出:

-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning at /usr/share/cmake-3.5/Modules/FindBoost.cmake:725 (message):
  Imported targets not available for Boost version 106200
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindBoost.cmake:763 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.5/Modules/FindBoost.cmake:1332 (_Boost_MISSING_DEPENDENCIES)
  cmake/Dependencies.cmake:5 (find_package)
  CMakeLists.txt:43 (include)


CMake Warning at /usr/share/cmake-3.5/Modules/FindBoost.cmake:725 (message):
  Imported targets not available for Boost version 106200
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindBoost.cmake:763 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.5/Modules/FindBoost.cmake:1332 (_Boost_MISSING_DEPENDENCIES)
  cmake/Dependencies.cmake:5 (find_package)
  CMakeLists.txt:43 (include)


CMake Warning at /usr/share/cmake-3.5/Modules/FindBoost.cmake:725 (message):
  Imported targets not available for Boost version 106200
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindBoost.cmake:763 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.5/Modules/FindBoost.cmake:1332 (_Boost_MISSING_DEPENDENCIES)
  cmake/Dependencies.cmake:5 (find_package)
  CMakeLists.txt:43 (include)


-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Boost version: 1.62.0
-- Found the following Boost libraries:
--   system
--   thread
--   filesystem
-- Found GFlags: /usr/local/include  
-- Found gflags  (include: /usr/local/include, library: /usr/local/lib/libgflags.a)
-- Found Glog: /usr/local/include  
-- Found glog    (include: /usr/local/include, library: /usr/local/lib/libglog.so)
-- Found Protobuf: /usr/local/lib/libprotobuf.so  
-- Found PROTOBUF Compiler: /usr/local/bin/protoc
-- Found HDF5: /usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5_hl.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/lib/libhdf5.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "1.8.16") 
-- Found LMDB: /usr/local/include  
-- Found lmdb    (include: /usr/local/include, library: /usr/local/lib/liblmdb.so)
-- Found LevelDB: /usr/include  
-- Found LevelDB (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libleveldb.so)
-- Found Snappy: /usr/include  
-- Found Snappy  (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libsnappy.so)
-- CUDA detected: 8.0
-- Found cuDNN: ver. 5.1.5 found (include: /usr/local/cuda/include, library: /usr/local/cuda/lib64/libcudnn.so)
-- Added CUDA NVCC flags for: sm_30
-- OpenCV found (/usr/local/share/OpenCV)
-- Found Atlas: /usr/include  
-- Found Atlas (include: /usr/include, library: /usr/lib/libatlas.so)
-- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.12", minimum required is "2.7") 
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found suitable version "2.7.12", minimum required is "2.7") 
-- Found NumPy: /usr/local/lib/python2.7/dist-packages/numpy/core/include (found suitable version "1.11.2", minimum required is "1.7.1") 
-- NumPy ver. 1.11.2 found (include: /usr/local/lib/python2.7/dist-packages/numpy/core/include)
CMake Warning at /usr/share/cmake-3.5/Modules/FindBoost.cmake:725 (message):
  Imported targets not available for Boost version 106200
Call Stack (most recent call first):
  /usr/share/cmake-3.5/Modules/FindBoost.cmake:763 (_Boost_COMPONENT_DEPENDENCIES)
  /usr/share/cmake-3.5/Modules/FindBoost.cmake:1332 (_Boost_MISSING_DEPENDENCIES)
  cmake/Dependencies.cmake:147 (find_package)
  CMakeLists.txt:43 (include)


-- Boost version: 1.62.0
-- Found the following Boost libraries:
--   python
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
-- Found Git: /usr/bin/git (found version "2.7.4") 
-- 
-- ******************* Caffe Configuration Summary *******************
-- General:
--   Version           :   1.0.0-rc3
--   Git               :   rc3-303-g5a201dd-dirty
--   System            :   Linux
--   C++ compiler      :   /usr/bin/c++
--   Release CXX flags :   -O3 -DNDEBUG -fPIC -Wall -Wno-sign-compare -Wno-uninitialized
--   Debug CXX flags   :   -g -fPIC -Wall -Wno-sign-compare -Wno-uninitialized
--   Build type        :   Release
-- 
--   BUILD_SHARED_LIBS :   ON
--   BUILD_python      :   ON
--   BUILD_matlab      :   OFF
--   BUILD_docs        :   ON
--   CPU_ONLY          :   OFF
--   USE_OPENCV        :   ON
--   USE_LEVELDB       :   ON
--   USE_LMDB          :   ON
--   ALLOW_LMDB_NOLOCK :   OFF
-- 
-- Dependencies:
--   BLAS              :   Yes (Atlas)
--   Boost             :   Yes (ver. 1.62)
--   glog              :   Yes
--   gflags            :   Yes
--   protobuf          :   Yes (ver. 3.1.0)
--   lmdb              :   Yes (ver. 0.9.70)
--   LevelDB           :   Yes (ver. 1.18)
--   Snappy            :   Yes (ver. 1.1.3)
--   OpenCV            :   Yes (ver. 3.1.0)
--   CUDA              :   Yes (ver. 8.0)
-- 
-- NVIDIA CUDA:
--   Target GPU(s)     :   Auto
--   GPU arch(s)       :   sm_30
--   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             :   /usr/local/lib/python2.7/dist-packages/numpy/core/include (ver 1.11.2)
-- 
-- Documentaion:
--   Doxygen           :   No
--   config_file       :   
-- 
-- Install:
--   Install path      :   /home/denis/code/caffe/build/install
-- 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/denis/code/caffe/build

this OpenCV 3.1 Installation Guide for Ubuntu 16.04中的Integration with Caffe节中,据说我必须在Makefile.config中的LIBRARY_DIRS变量中包含/usr/local/share/OpenCV/3rdparty/lib/。但是,我的 /usr/local/share/OpenCV 文件夹中没有 3rdparty/lib/

(deep-learning) ➜  caffe git:(master) ✗ ls /usr/local/share/OpenCV
haarcascades  lbpcascades  OpenCVConfig.cmake  OpenCVConfig-version.cmake  OpenCVModules.cmake  OpenCVModules-release.cmake

我已经完成了大多数 Caffe 安装指南中所述的对 MakefileMakefile.config 的所有更改。

在我的 Makefile.config 我有这个 (here's the full file):

USE_CUDNN := 1
OPENCV_VERSION := 3
CUDA_DIR := /usr/local/cuda-8.0
WITH_PYTHON_LAYER := 1

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial /usr/local/share/OpenCV/3rdparty/lib/
USE_PKG_CONFIG := 1

下面是来自 Makefile (full file) 的一些内容:

LIBRARIES += glog gflags protobuf leveldb snappy \
  lmdb boost_system hdf5_hl hdf5 m \
  opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs opencv_videoio

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

我什至不确定它可能是什么以及为什么会发生错误。一种理论是它是 the conflict of OpenCV versions 或其他东西(我可能早些时候安装了 OpenCV 2,但我不认为我现在有它,并且 python 中的 cv.__version__ 给了我 3.1.0).其他人说这是一些链接问题,但我不明白如何解决这些问题。


你能帮我解决我的问题并正常安装Caffe吗?


PS:我已经花了很多时间尝试使用 OpenCV 3.1 安装 Caffe,我认为即使使用 OpenCV 2 我也会很高兴(如果它有效的话),但是我不确定我是否可以从我的系统中完全删除 OpenCV 3.1,因为在一堆不同的文件夹中有很多与 OpenCV 3.1 相关的不同文件。

因此,以下是我为解决问题而采取的步骤:

  1. 删除与 OpenCV 关联的所有文件
  2. 删除所有与 Boost 相关的文件
  3. 删除所有与 Caffe 关联的文件
  4. 使用 sudo apt-get install libboost-all-dev
  5. 安装 Boost
  6. 安装 OpenCV 3.1
  7. 关闭虚拟环境
  8. 从路径中排除 Anaconda2 并使用标准 python 分布
  9. 按照官方指南继续使用标准python 分布

基本上,我只是放弃使用 Anaconda,它开始工作得很好。