使用VS2005安装和编译QT4.53源码

学习Qt,当然是QT4好。可是装了4.86以后,网上下载的书中的例子大多无法直接用VS执行(个人不喜欢用QT Creator),即打开pro转换的时候出错(我也懒的研究为什么出错了)。看了一下发布时间,觉得4.53时间比较合适,是2009年末发布的。也许能运行书上的例子。

因为很懒,所以不想编译QT源代码,最好装上就能用。所以下载了qt-win-opensource-4.5.3-mingw.exe,安装报错,说找不到mingw。所以又下了MinGW-5.1.4.exe,这是个在线安装版本,我非常不喜欢,但是也没办法,实在找不到离线版本。不过没想到,安装也挺简单的,而且都下载到本地,干脆我就把它们全保留了,省得下次还要下载。安装完以后要设置:

---------------------Windows下安装MinGW后环境变量配置---------------------
http://blog.csdn.net/johnpub/article/details/9246887

1、在PATH里加入C:MinGWin,记得,如果里面还有其他的变量,记得要加个分号啊,分号得在英文输入模式下输入的。
2、新建LIBRARY_PATH变量,如果有的话,在值中加入C:MinGWlib,这是标准库的位置。
3、新建C_INCLUDEDE_PATH变量,值设为C:MinGWinclude。
4、新建CPLUS_INCLUDE_PATH变量,值为C:MinGWincludec++3.4.5;C:MinGWincludec++3.4.5;C:MinGWincludec++3.4.5ackward;C:MinGWinclude

或者
1、添加MINGW_HOME,值为:C:MinGW
2、添加C_INCLUDE_PATH,值为%MINGW_HOME%include
3、添加CPLUS_INCLUDE_PATH,值为 
%MINGW_HOME%libgcc;%MINGW_HOME%libgccmingw32;%MINGW_HOME%libgccmingw324.7.2;%MINGW_HOME%libgccmingw324.7.2include;%MINGW_HOME%libgccmingw324.7.2includec++;%MINGW_HOME%libgccmingw324.7.2includec++ackward;%MINGW_HOME%libgccmingw324.7.2includec++mingw32;
4、path添加值:%MINGW_HOME%in;

------------------------------------------------------------------------------------

然后就可以安装了qt-win-opensource-4.5.3-mingw.exe了,一切都没有问题。

但我的目的是使用VS2005学习QT4,所以继续。安装VS2005,这个简单。然后安装qt-vs-addin-1.1.11-opensource.exe (for qt4),这个也简单。然后在VS的QT->QT Options菜单里设置QT版本,当然选择之前安装的4.53,结果报错,说是MinGW版本。说的这么明白,肯定是不行了。所以没办法,不能偷懒了,必须自己编译源代码。网上搜了一些文章,折腾了好一会儿,都不行。主要是能运行QT源码目录里的configure,但不能运行之后的nmake。原因是configure运行的不好或者不成功。后来成功运行了configure,主要是设置一些系统参数(不是configure的命令参数啊),如下(特别是第三项,我漏了这个):

QTDIR —— 刚刚解压的Qt根目录,
添加%QTDIR%in到Path,
QMAKESPEC —— win32-msvc2005

如此之外,我还设置了%QTDIR%Lib到Path,运行过vcvarsall.bat,因为一开始不成功,所以参考了一些其它文章,其中就提到了这些,也不知道有没有影响。

因为我需要全版本的QT,所以Configure命令不带任何参数。

几分钟之后,configure就结束了,然后运行namke.exe,这个需要2个小时。然后就可以使用VS2005打开QT项目的.pro文件,可以自动转换,不报任何错。至少《Linux窗口程序设计―Qt4精彩实例分析-实例源代码》这本书里的几个项目文件都没问题(QT跨平台特性一流,明明书是给Linux的,VS打开项目文件照样直接运行,爽)。后来又试了C++ GUI Qt4 编程(第二版)的例子,带中文路径,转换和运行都没有问题。爽~

主要参考:

http://hi.baidu.com/maxint/item/694146accb222c38020a4d5a

原文地址:https://www.cnblogs.com/findumars/p/3901568.html