Gal*_*axy 0 c++ ubuntu qt opencv
当我试图在Ubuntu上链接OpenCV库时,发生了一些我无法理解的问题.
我在Ubuntu 14.04上使用了OpenCV 2.4.11和Qt创建器.
在我的项目文件中,我写道
INCLUDEPATH += /usr/local/include/opencv
INCLUDEPATH += /usr/local/include/opencv2
LIBS += -L/usr/local/lib\
-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
Run Code Online (Sandbox Code Playgroud)
但是在构建项目时存在许多错误,例如undefined reference to 'cvCreateMat'.显然,OpenCV没有正确地链接到我的项目.
因此,我在网上搜索并尝试了一种可能的解决方案,就是这样
CONFIG += link_pkgconfig
PKGCONFIG += opencv
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,它工作,并没有再次链接错误.
但是,我仍然无法理解为什么它不能以第一种方式工作,因为我已经在Mac OS X上以这种方式成功设置了我的项目.为什么它现在不适用于我的Ubuntu?
我试过pkg-config --libs opencv,结果是
-L/usr/local/lib -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 -ltbb -lXext -lX11 -lICE -lSM -lGL -lGLU -lrt -lpthread -lm -ldl
Run Code Online (Sandbox Code Playgroud)
你错过了一个图书馆: -lopencv_nonfree
在Linux上的qt项目中包含openCV的最佳方法是在pro文件中添加如下内容:
# add open CV
unix {
CONFIG += link_pkgconfig
PKGCONFIG += opencv
}
Run Code Online (Sandbox Code Playgroud)
将代码移动到另一台机器时,您将免于路径问题.
| 归档时间: |
|
| 查看次数: |
4254 次 |
| 最近记录: |