目前使用环境是:win7(32位) + VS2010+Opencv2.4.9 使用一切正常。
我下载的 opencv 包中包含 build 及 source 两个文件夹。
C:\puyanan\opencv\build\include. 及其文件夹下的 opencv, opencv2 路径添加到了vs2010 工程属性页->VC++目录->包含目录 ;
C:\puyanan\opencv\build\x86 文件夹下包含三个文件夹:
C:\puyanan\opencv\build\x86\vc10\bin 文件夹下为 .dll 文件(实际的函数和数据);该路径已经添加到系统环境变量“PATH”中。
C:\puyanan\opencv\build\x86\vc10\lib 文件夹下为 .lib文件(dll 中函数的名称和位置信息);该路径添加到了vs2010 工程属性页->VC++目录->库目录 ;
今天想要使用 Qt 中及Opencv 库 遇到了挫折。第一个错误是我直接使用了原来的 include 目录及 Lib、bin 文件,即在 Qt 的 .pro文件中添加了原来的 “INCLUDEPATH” 及 “LIBS”的路径。运行报错。后来看到这篇文章:
CMake +MinGW编译 opencv-2.4.7 : http://blog.csdn.net/eagelangel/article/details/17715913
明白自己弄错了概念。以上 build 文件夹中的内容 是经过编译好了的文件(直接下载的内容,不是自己编译的),恰好当时cmake的时候使用的 generator 是VS2010,所以我使用在VS2010的IDE环境中没有出问题。现在我的Qt环境是: win7(32位)+QtCreator2.8.0+Qt4.8.5+mingw. 所以我需要将 source 中的文件重新通过cmake 编译成新环境下的文件(主要是 generator 从 vs2010 到 mingw 的改变,以及相应的编译器的改变)。上图中的三个文件夹 vc10, vc11, vc12 分别对应三个版本的编译器生成的文件。
主要步骤:
1. 安装 qt creator, 安装后文件在 C:\Qt\qtcreator-2.8.0
2. 将 mingw 压缩包解压到 C:\Qt\mingw
3. 安装Qt4.8.5 到 C:\Qt\4.8.5 最后一步要选择编译器 mingw的路径,及C:\Qt\mingw
4. 在 qt creator 中配置编译器、配置项目管理工具、配置调试器等
5. 配置opencv 库
首先用 cmake 编译出 bin lib 等文件。打开cmake-gui,
Where is the source code: C:\puyanan\opencv\sources(根据自己的opencv源文件)
Where to build the binaries: C:\puyanan\opencv\build/x86/mingw(自己设置编译后的文件路径)
点击 Confugure,弹出对话框:
指定 generator 和 编译器。这两个的概念没理清,下面这篇文章的回答感觉靠谱:
接下来的编译器该怎么选呢?默认第一条,本地编译器。姑且认为不同的 Generator 都有其默认本地 combiler.
接下来点击 Configure 报错:
错误信息是:CMAKE_MAKE_PROGRAM not found 百度后我打开 CMakeCache.txt , 修改了里面的值为“CMAKE_MAKE_PROGRAM:FILEPATH=C:/Qt/mingw/bin/mingw32-make.exe” , 但是每当再次点击Configure, 修改就会失效,仍然变成 not find.
最终的原因是我没有将 qt creator 和 Qt4 的 bin 路径添加到系统环境变量 Path 中, 添加后重启,就顺利的Configure, 变红以后勾选了” WITH_OPENGL“ "WITH_QT",其他不变;再次 Configure ,变白色了,最后 Generate。
cmake 生成的文件只是一个中间文件,里面找不到 lib 和 bin 文件。
接下来 进入到命令行窗口, 进入到 C:\puyanan\opencv\build\x86\mingw, 执行“mingw32-make”命令编译opencv 库(所需时间较长),结束后再执行“mingw32-make install”, 将编译后的库文件自动安装到 mingw\install 目录下。(我发现文件目录太深了,直接把minge文件夹拷贝到C:\puyanan\opencv\mingw).于是,
头文件的包含路径变成:C:\puyanan\opencv\mingw\install\include ;
把bin 文件路径:C:\puyanan\opencv\mingw\install\x86\mingw\bin 添加到系统环境变量“Path”中;
lib 文件路径为:C:\puyanan\opencv\mingw\install\x86\mingw\lib
最后在 Qt项目文件 .pro文件中 添加相应的包含目录和库目录:例如
配置完成。
另外参考的一些文章:http://www.cnblogs.com/changkaizhao/articles/3269323.html (配置过程比较详细)
http://www.cnblogs.com/changkaizhao/articles/3269323.html