Opencv + Boost:未定义的引用

Opencv + Boost: Undefined references

本文关键字:引用 未定义 Boost Opencv      更新时间:2023-10-16

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

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

我的makefile如下。我认为我正确地指出了boost和openv库。会出什么问题呢?

# 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
OPENCV_LIBS=-L/usr/lib/opencv2/ -lopencv_core ...
                   ^^^

您可能需要检查OpenCV是否正确安装以及该安装位于何处。之后,您可以调整您的makefile。这取决于你的操作系统。

。在Linux上,您可能想要搜索opencv_core.so(例如通过locate -b opencv_core)。

在我的例子中是

OPENCV_LIBS=-L/usr/lib/ -lopencv_core

如果你已经安装了pkg-config,如果它知道OpenCV在哪里,你可以尝试

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