OpenCV2学习笔记03:Qt中配置OpenCV环境

在Qt中开发基于OpenCV的应用时,需要配置对应函数库到环境变量,这时候我们需要使用到qmake能够识别的变量来指定环境变量。

INCLUDEPATH: 用于指定搜索头文件到文件夹路径。

LIBS: 包含链接时的库文件列表。使用-L来指定文件夹路径,-l来指定库的名称。

而这些配置,我们需要写入到对应到工程文件(*.pro)当中,可以有两种写法。

第一种:直接指定包含到库文件名称。

1 INCLUDEPATH += /usr/local/include/opencv2/
2 
3 LIBS += /usr/local/lib/libopencv_core.so \
4         /usr/local/lib/libopencv_highgui.so \
5         /usr/local/lib/libopencv_imgproc.so

这种方法必须指定整个文件到完整路径及名称,编写起来相对麻烦一点。

 

第二种:指定库文件路径和库名称。

1 INCLUDEPATH += /usr/local/include/opencv2/
2 LIBS += -L/usr/local/lib/ \
3     -lopencv_core\
4     -lopencv_highgui\
5     -lopencv_imgproc

这里只需要先声明库文件的位置,然后使用-l参数来添加库名称即可。

 

2014-12-10补充:

      以上介绍的方法是Linux上或者是Window下MinGW版本的Qt环境下使用方法,如果你使用的是MSVC编译器的Qt环境,那么在编译OpenCV库是会在库文件后面添加一个版本号后缀,因此在使用这类环境进行OpenCV应用程序开发的时候,你就需要在以上基础上做稍微的修改,以我在Windows 7 64位平台上使用VS2012编译的OpenCV 2.4.9为例,在*pro中配置OpenCV库环境支持时使用的库添加命令代码如下:

1 #for OpenCV Lib
2 INCLUDEPATH += C:/opencv/install/include/
3 LIBS += -LC:/opencv/install/x64/vc11/lib/ \
4         -lopencv_core249  \
5         -lopencv_highgui249 \
6         -lopencv_imgproc249

 

我在Mac上运行以上代码时,提示以下错误:

dyld: Symbol not found: __cg_jpeg_resync_to_restart
  Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO
  Expected in: /usr/local/lib/libJPEG.dylib
 in /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO

解决办法是将“”目录下的对应动态链接库文件创建软连接到“/usr/local/lib”目录下:

$ pwd
/System/Library/Frameworks/ImageIO.framework/Versions/A/Resources
$ sudo ln -sf libJPEG.dylib /usr/local/lib/libJPEG.dylib
$ sudo ln -sf libPng.dylib /usr/local/lib/libPng.dylib
$ sudo ln -sf libTIFF.dylib /usr/local/lib/libTIFF.dylib

 

posted @ 2014-08-22 20:59  XiaoManon  阅读(2778)  评论(0编辑  收藏  举报