VS2010+OpenCV2.4.3+Qt4.8.4 组合配置

来源:互联网 发布:java 短信验证码校验 编辑:程序博客网 时间:2024/04/30 03:32

一直想给OpenCV装个壳,可惜不会使MFC~(>_<)~,听说Qt比较好使,早就想尝试Qt了,最近终于付诸行动,但是VS2010+OpenCV2.4.3+Qt4.8.4 组合配置真是历尽坎坷啊,现在把我的一些经验教训记载如下,希望给大家提供一些参考和帮助。(主要讲解Qt与VS2010的配置,OpenCV与VS2010结合配置比较简单,在此就不细讲了。)

 

1.下载:

在http://qt-project.org/downloads下载两个文件:

  • Qt SDK:Qt libraries 4.8.4 for Windows (VS 2010, 234 MB)
     
  • VS2010开发插件:Visual Studio Add-in 1.1.11 for Qt4

 

2.安装与修改:

安装Qt SDK,具体目录自己定,连续点下一步就行,但是文件目录最好别有空格,Qt貌似特别较弱,对空格和中文路径都不太支持。

编译就比较麻烦,因为Qt的library是基于minGW的,要在VS2010下使用就需要重新编译。

首先要修改Qt SDK的几处错误,不然会出让人无限抓狂的错误:

  1. 删除源码包中bin目录下的syncqt和syncqt.dat文件,如你不放心可将其改名或剪切到别的位置。如不修改将发生Perl not found in environment - cannot run syncqt 错误。
     
  2. 修改\mkspecs\win32-msvc2010下的qmake.conf文件,将其中的QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t-改成QMAKE_CFLAGS=-nologo -Zm200 -Zc:wchar_t

    注意末尾的”-“号区别。如不修改将来如有项目使用wchar_t,qt却编译成wchar_t-,编译会导致连接错误,提示找不到Qwstring;(这部分很多人都说需要将QMAKE_CFLAGS_RELEASE,QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO,QMAKE_CFLAGS_DEBUG这3处后面的MD,MDd对应改成MT,MTD,以实现在没有VC库的电脑也能运行Qt程序,但是我没有改,改的话我的编译反而出问题。)

     

  3. 修改src\3rdparty\webkit\Source\WebCore\platform下的DefaultLocalizationStrategy.cpp,定位到327行,将本行替换成return WEB_UI_STRING("Look Up \"<selection>\"", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString))。

 

3.编译(漫长的等待)

开始->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio命令提示(2010),打开的窗口如下:

上图是VS2010自动帮我配置好环境变量,已正常进入VS2010的VC目录上一段是题外话,如果你的VS已经自动帮你配置好环境变量了,如上面截图所示,则输入命令进入到源码包的目录下。

进入我的已解压的源码包目录下,我已重命名为qt4.8.4了。

运行命令configure -platform win32-msvc2010o(选择opensource模式)回车,Y(同意license)回车


接着就会自动配置Qt的编译环境,等配置结束(大概40分钟)

运行nmake,回车,Qt就会开始漫长的编译过程,这段时间非常长,需要4个小时以上,大家可以在晚上睡觉的时候进行编译。

只要不出错(warning无所谓),那就恭喜你,你已经完成了大部分的工作。(这一步劳资花了3天才搞定,累死哥了~)

 

4.安装Qt_VS2010插件

同安装Qt SDK一样,一路上回车即可,安装后在VS2010上新增一菜单Qt,如图所示

 

配置VS2010Qt开发环境(VS2010最好是英文版本,QtVS2010中文版本可能支持的不好)

Qt插件安装好后就可以配置VS2010的开发环境了,进入VS2010,选择Qt菜单,Qt Option,进入下图界面

点击Add,添加Qt的安装目录,并取名字。我取了qt4.8.4的名字。。选择ok就哦了。。

 

5.新建或者导入Qt项目

可以通过在VS2010新建一个Qt项目

再次强调:该工程文件的目录不可以有中文。不然会报错。。(最好是英文路径,而且不要有空格)。之后运行就哦了。。

我们在此测试一个最简单的Hello World!

在main函数中输入下面的代码:

 #include <QtGui/QApplication> #include <QLabel>  int main(int argc, char *argv[]) {     QApplication a(argc, argv);     QLabel *label=new QLabel("<h2><i>Hello </i>""<font color=red>world!</font></h2>");//create a label with the content "Hello world!"     label->show();     return a.exec(); }

 

coference:

http://www.cnblogs.com/elect-fans/archive/2012/03/29/2422816.html

http://www.cnblogs.com/tornadomeet/archive/2012/04/22/2465506.html

http://blog.csdn.net/xhmqz/article/details/8257456