繁体   English   中英

QT找不到openCV的库

[英]QT can't find openCV's libs

我已经通过指令安装了OpenCV。

我什么时候使用OpenCV并通过cmake构建代码-一切正常。 但是现在我正尝试从QT使用OpenCV,但出现如下错误:

 error: undefined reference to `cvCreateCameraCapture'

对于来自OpenCV的所有功能,存在相同的错误。

我试图在.pro中添加以下代码:

INCLUDEPATH += /usr/local/include/opencv2
LIBS += -L/usr/local/lib
LIBS += -lopencv_core
LIBS += -lopencv_imgproc
LIBS += -lopencv_highgui
LIBS += -lopencv_ml
LIBS += -lopencv_video
LIBS += -lopencv_features2d
LIBS += -lopencv_calib3d
LIBS += -lopencv_objdetect
LIBS += -lopencv_contrib
LIBS += -lopencv_legacy
LIBS += -lopencv_flann

但这是行不通的。 目录/usr/local/include/opencv2存在并且不为空。

那怎么了

将此添加到.pro文件:

LIBS += "pkg-config --libs opencv"         

您收到链接器错误,因此编译正确。 为了正确地将链接库目录和链接库添加到您的.pro文件,您应该在控制台上发出如下命令:

username @ linux-host:〜> echo $(pkg-config --libs opencv)

然后,您应该阅读一长串库,如以下行所示:

-lopencv_calib3d -lopencv_contrib -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_gpu -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_ml -lopencv_nonfree -lopencv_objdetect -lopencv_ocl -lopencv_photo -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videostab /usr/lib64/libXext.so的/ usr / lib64下/libX11.so /usr/lib64/libICE.so /usr/lib64/libSM.so /usr/lib64/libGL.so /usr/lib64/libGLU.so -lrt -lpthread -lm -ldl

在获得包含所有库和选项的长字符串序列后,将其插入.pro文件,如下所示:

LIBS + = -lopencv_calib3d -l ... ...如上所述插入所有字符串!

保存.pro文件,重新运行qmake并再次运行make。 链接错误应该已经消失。

如果问题没有消失或显示其他链接错误,请在您的opencv编译目录(和子目录)中找到所有扩展名为.pc的文件,并将其作为root复制到目录/ usr / share / pkgconfig /中。

然后再次发出上述命令,并在.pro文件中插入正确的字符串序列,以标识LIBS + =行中的库选项,并保存.pro文件,重新运行qmake并重新运行make。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM