【问题标题】:Caffe: opencv error咖啡:opencv错误
【发布时间】:2015-09-24 01:45:45
【问题描述】:

我已经从源代码构建了 opencv 3.0,并且可以运行一些示例应用程序,针对标头进行构建,所以我认为它已成功安装。

我也在使用python3,我现在去安装和构建caffe。由于有 AMD GPU 和 Anaconda,我在使用 CPU 时在 Makefile.config 中设置了一些变量。

当我运行 make all 时,我得到了这个错误:

$ make all
CXX/LD -o .build_release/examples/cpp_classification/classification.bin
/usr/bin/ld: .build_release/examples/cpp_classification/classification.o: undefined reference to symbol '_ZN2cv6imreadERKNS_6StringEi'
//usr/local/lib/libopencv_imgcodecs.so.3.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:565: recipe for target '.build_release/examples/cpp_classification/classification.bin' failed
make: *** [.build_release/examples/cpp_classification/classification.bin] Error 1

通过搜索,我认为这与使用 openCV 3 有关,但我不确定从哪里开始寻找解决方案。有什么帮助吗?

是的,我是一群希望摆弄 Google Inception 学习技术的缺乏经验的用户之一。

【问题讨论】:

    标签: c++ opencv python-3.x opencv3.0 caffe


    【解决方案1】:

    我使用cmake 代替-DBUILD_TIFF=ON 标志并成功构建。

    【讨论】:

      【解决方案2】:

      您还可以将opencv_imgcodecs 添加到 MakeFile 中的187 行,请参阅此pull

      【讨论】:

      • 添加 -lopencv_imgcodecs 非常适合我的 g++ 编译。
      【解决方案3】:

      可能您使用的是 OpenCV 版本 3。如果是,请取消注释您的 Makefile.config 中的以下行:

      # OPENCV_VERSION := 3
      

      它看起来像

      OPENCV_VERSION := 3
      

      您可以通过以下方式验证当前使用的版本:

      $ python
      >>> import cv2
      >>> cv2.__version__
      '3.1.0-dev'
      

      【讨论】:

        【解决方案4】:

        问题报告很清楚。链接库库有问题。原因可能是3.0和2.x的不同。 你需要添加

        opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
        

        进入图书馆+=。

        【讨论】:

          【解决方案5】:

          您可以像这样使用以下 2 行编辑Makefile.config,它对我有用。请注意,您的 opencv 路径必须在默认路径之前设置

          INCLUDE_DIRS := $(PYTHON_INCLUDE) /home/young/Soft/openCV-3.3.1/include \
              /usr/local/include /usr/include/hdf5/serial
          LIBRARY_DIRS := $(PYTHON_LIB) /home/young/Soft/openCV-3.3.1/lib \
              /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial                                                                                            
          

          【讨论】:

            【解决方案6】:

            一种快速的解决方法是在编译代码时添加 -lopencv_imgcodecs 标志。
            这对我有用:
            g++ test.cpp -o test <Some flags> -lopencv_imgcodecs

            【讨论】:

              猜你喜欢
              • 2017-10-03
              • 1970-01-01
              • 1970-01-01
              • 2016-12-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多