win7+Qt+Opencv 配置

目前使用环境是:win7(32位) + VS2010+Opencv2.4.9  使用一切正常。

我下载的 opencv 包中包含 build 及 source 两个文件夹。

C:\puyanan\opencv\build\include. 及其文件夹下的 opencv, opencv2 路径添加到了vs2010 工程属性页->VC++目录->包含目录 ;

C:\puyanan\opencv\build\x86 文件夹下包含三个文件夹:

win7+Qt+Opencv 配置_第1张图片

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,弹出对话框:

win7+Qt+Opencv 配置_第2张图片

指定 generator 和 编译器。这两个的概念没理清,下面这篇文章的回答感觉靠谱:

What is a CMake generator?  http://stackoverflow.com/questions/25941536/what-is-a-cmake-generator

(其中还把这些 generator 分类,比如 MinGW Makefiles 就属于 Command-line Build Tool Generators, 后面编译的时候要用命令行执行是这个原因吗?)

generator 选择 MinGw Makefiles 。(原来是选择Visual Studio 10)

接下来的编译器该怎么选呢?默认第一条,本地编译器。姑且认为不同的 Generator 都有其默认本地 combiler.

接下来点击 Configure 报错:

win7+Qt+Opencv 配置_第3张图片

错误信息是: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文件中 添加相应的包含目录和库目录:例如

win7+Qt+Opencv 配置_第4张图片

配置完成。

另外参考的一些文章:http://www.cnblogs.com/changkaizhao/articles/3269323.html  (配置过程比较详细)

http://www.cnblogs.com/changkaizhao/articles/3269323.html 


你可能感兴趣的:(环境配置备忘录,Qt4.8,opencv2,cmake,win7,vs2010)