下载源代码,注意必定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip, 不是Qt发布的已编译的不一样版本的标准库如qt-win-opensource-4.8.0-vs2010.exe,这些版本都只是动态编译的,不是咱们 所须要的。只有用源码包才能作真正的纯静态编译,若是用Qt官网已编译的标准库.exe文件进行编译,有可能出现各类错误,并且编译后的文件巨大,我当时 就在这里绕了很大的弯子,请童鞋们注意啦!!可能有些老鸟会笑话,但我本着最严肃的态度告诉菜鸟们,上网查资料看博客,必定要注意博文的文字细节,有时候 差几个字就能让你费很大的劲,四处碰壁。html
首先解压源码包到你想要保存编译的位置,注意文件目录必定不能包含中文和空格!linux
1.下载安装VS2010,我装的是英文破解版,个人安装路径是D:\Microsoft Visual Studio 10.0,选择彻底安装,完成后在C:\Program Files下会生成不少文件夹,注意Microsoft SDKs文件夹配置环境变量时要用到,安装完成后能够正常启动VS2010,可是若是想经过命令好启动VS2010还须要设置系统环境变量,设置方法:web
个人电脑->右键菜单选择属性->高级系统设置->高级->环境变量->xp用户变量;在用户变量中增长如下环境变量,注意别本身加空格:sql
include = D:\Microsoft Visual Studio 10.0\VC\include;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include;windows
lib = D:\Microsoft Visual Studio 10.0\VC\lib;C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib;工具
path = D:\Microsoft Visual Studio 10.0\VC\bin;D:\Microsoft Visual Studio 10.0\Common7\IDE;C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin;学习
(2).在环境变量中的系统环境变量增长:QTDIR=D:\Qt\4.7.3, QMAKESPEC=win32-msvc2010,Path = %QTDIR%\bin;测试
因为Qt4.8在VS环境下的一些问题,为了不编译中途出现,我总结了3个地方须要修改。网站
(1) 删除源码包中bin目录下的syncqt和syncqt.dat文件,如你不放心可将其更名或剪切到别的位置。如不修改将发生 Perl not found in environment - cannot run syncqt 错误。spa
(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));(因为word自动排版问题,请各位直接将以上 英文部分一次性全复制,其实它们是一行,不要分行复制)。
如不修改将出现编译Webkit 时会出现 U1077错误。
VS2010下纯静态编译,须要再VS2010的命令提示符下进行,我安装的是中文版visual studio2010,个人打开步骤以下(英文版本身对号入座):开始->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio 命令提示(2010),打开的窗口以下:
上图是VS2010自动帮我配置好环境变量,已正常进入VS2010的VC目录。我当初碰到过一次自动配置环境变量错误,在截图的第二行出现一行英文,内 容大概是没法肯定VC环境以及VC的位置,当时查遍了各类资料以及尝试网上的各类办法,中文的外文的网站各类建议,都不能够,差点让我失去信心。当时一辈子 气,重启电脑,出门走走又本身琢磨了好几种方法,回来刚想试一试,没想到从新打开命令提示符,竟然又自动能够了,真是惊喜啊。。最后想了想,当时错误可能 是先装了SDK,而后又胡乱根据网上的方法,手动修改了电脑的环境变量,而后就出现这个问题。。后来再重启电脑前,把以前手动添加的环境变量通通删了,重 启后重开命令提示符就恢复了。但愿对有和我相同问题的童鞋能有所帮助。
上一段是题外话,若是你的VS已经自动帮你配置好环境变量了,如上面截图所示,则输入命令进入到源码包的目录下。这里教 一些命令行新手,老鸟请直接跳过,如你如今的目录在C盘下,而你的源码包在D盘,则输入”d:”,回车,进入到D盘。可使用cd进入你所要进入的目录 中,如cd Qt\4.8.0,就能进入到D:\Qt\4.8.0中,在各个目录下,可使用dir命令查看当前目录下的全部文件,如同linux下的ls命令。我进 入个人已解压的源码包目录下,我已重命名为4.8.0了。命令提示符截图以下:
接下来进行编译前的配置工做。执行配置,完整命令以下:
configure -debug-and-release -fast -static -platform win32-msvc2010 -no-qt3support -script -scripttools -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -qt-sql-sqlite -plugin-sql-sqlite -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -qt-style-plastique -qt-style-cleanlooks -qt-style-motif -qt-style-cde -nomake demos -nomake examples -nomake docs -mp
//用的下面的配置参数
E:\qt-4.8.7>configure -debug-and-release -fast -static -platform win32-msvc2010
-no-webkit -no-script -no-qt3support -nomake demos -nomake examples -nomake docs
-mp
各个命令说明请参照个人另外一篇博文:Qt configure 参数不彻底说明http://www.cnblogs.com/elect-fans/archive/2012/03/28/2420647.html
推荐将debug和release版本都编译,那样VS2010编译调试Qt程序不会出现LINK错误,本人亲测,有些 人说只要编译release就能够了,但我我的以为多编译一个debug,就增长一点点空间,并且后面命令省掉了demos等文件的编译,我最终编译完成 的文件也就3.6G,对于如今的电脑硬盘来讲都是毛毛雨了。命令最后的-nomake demos -nomake examples -nomake docs,不变异demos,exampls,docs文件,这样既能够提升编译速度,也能减少编译后的体积。-mp适合多核用户提升编译速度,- fast也很重要,细节请看上面的博文。
执行配置,期间会询问是否采用open source(开源版本),仍是商业版本,输入”o”选择开源版本;询问是否赞成条款,输入”y”表示赞成,开始执行配置过程,直到提示配置完成,能够下一步nmake,以开始执行编译。
输入nmake,执行编译,编译过程数个小时(具体看我的电脑配置),编译时最好关闭防火墙,360之类的,你能够作别的事情了,看看网页,电影之类的,但不要运行大型程序,否则会严重下降编译速度。
编译成功结束,如同上图所示,能够关闭命令提示符了。我以前在看网上的资料,执行nmake clean,nmake confclean,结果形成后面VS2010编译Qt程序以及QtSDK编译程序出现各类问题,如找不到config.h,qtmaind.lib等 等。因此强烈建议,编译成功就到此结束,不要执行上述两个清理工做。以前还尝试在configure添加-prex 指定nmake install安装目录,后经实验,编译后,的确能够实现编译完成后能实现静态库连接,且在QtCreator编译出静态程序,可是在VS2010编译程 序时,出现不少找不到PDB的警告,因此舍弃之。
更多连接请光临个人博客:http://www.cnblogs.com/elect-fans/
接下来安装VS插件,安装文件为qt-vs-addin-1.1.10.exe,如下是安装过程以及安装的选项。
安装完成后,打开VS2010,能够经过QT菜单进行QT编译库定位以及打开pro工程文件,也能够经过新建工程项目来建立QT工程。
打开QT工程后,稍稍等待左下角提示关联文件包含提示结束,出现“就绪”的提示后,便可像编译普通VC程序同样,点“编译”按键进行编译以及经过调试菜单 进行调试。注意经过VS2010主要用于调试,要想发布最终的静态连接程序,最好经过QTSDK中的QTCreator来发布。
安装QtSDK,如下是安装过程以及安装选项:
安装完成后,打开QtCreator中,在菜单”工具”->”选项”->”构建和运行”->”Qt版本”,手动添加刚才静态编译的QT的qmake.exe工具。
配置完成,接下来就能够打开Qt工程,经过项目设置来发布静态连接的Qt程序咯!!
我通过4天N次尝试,亲自测试各类资料和方法,最终经过实践成功完成了VS2010静态编译配置QT,期间遇到种种问题,总算解决了,因为篇幅的缘由就不一一陈述了,不过本文是我一步步整理出来的,不敢说最适合,但必定有效!请你们关注个人博客:http://www.cnblogs.com/elect-fans/,一块儿探讨学习。