Caffe: opencv error



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

我也在使用python3,现在我要安装并构建caffe。我在Makefile.config中设置了一些变量,因为我使用的是CPU,因为我有AMD GPU和Anaconda。

当我运行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

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

是的,我是一群缺乏经验的用户中的一员,他们希望摆弄谷歌盗梦空间的学习技术。

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

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

# OPENCV_VERSION := 3

所以它看起来像

OPENCV_VERSION := 3

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

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

问题报告非常清楚。链接库时出现问题。原因可能是3.0和2.x之间的差异。您需要添加

opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

进入图书馆+=。

我使用了带有-DBUILD_TIFF=ON标志的cmake,并获得了成功的构建。

您可以像这样用以下两行编辑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                                                                                            

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

相关内容

  • 没有找到相关文章

最新更新