Opencv + Boost:未定义的引用

时间:2014-06-12 13:54:16

标签: c++ opencv boost

我有一个计算机视觉源代码,它与在伪造图像中查找复制和移动部分有关。我无法编译使用openCV和Boost的源代码,其中一些错误包括对OpenCv内容的未定义引用,例如:。

main.cpp:(.text+0x3cc1): undefined reference to `cvSetZero'

我的makefile如下。我想我正确指出了boost和opencv库。可能有什么不对?

# Boost library is required
BOOST_LIBS=-L/usr/include/boost -lboost_system  -lboost_random
BOOST_INCLUDE=-I/usr/include/boost
BOOST_VERSION=103500

OPENCV_INCLUDE=-I/usr/include/opencv2/ 
OPENCV_LIBS=-L/usr/include/opencv2/ -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_flann -lopencv_calib3d

3 个答案:

答案 0 :(得分:2)

OPENCV_LIBS=-L/usr/lib/opencv2/ -lopencv_core ...
                   ^^^

答案 1 :(得分:0)

您可能想要检查OpenCV是否已正确安装以及此安装位于何处。之后你可以调整你的makefile。如何执行此操作取决于您的操作系统。

E.g。在Linux上,您可能希望搜索opencv_core.so(例如,通过locate -b opencv_core)。

就我而言,它将是

OPENCV_LIBS=-L/usr/lib/ -lopencv_core

答案 2 :(得分:0)

如果您安装了pkg-config,并且知道OpenCV在哪里,您可以尝试

OPENCV_INCLUDE=$$(pkg-config --cflags opencv)
OPENCV_LIBS=$$(pkg-config --libs opencv)