标签:
前言:
先说一些废话,本文成形,参考了大量的网上资料。对此十分感谢。附上一此网址:
http://www.cnblogs.com/elect-fans/archive/2012/03/29/2422816.html
一、下载源码并解压
从QT官网http://qt.nokia.com/ 下载最新的QT源码包,我下载的是4.8.1的版本。文件名为“qt-everywhere-opensource-src-4.8.1.zip”。用解压软件解压到”C:\QT-4.8.1”。
一些说明:
1、解压路径可随意,但文件目录一定不能包含中文和空格!就算源程序和编译目录满足这个条件,然而QT在编译过程中,会大量使用TEMP文件,Window 7系统的TEMP目录在C:\Users\[用户名]\AppData\Local\Temp下,如果当前用户是中文的名,在QT编译过程中就是致命的。最好的解决办法就是吧window的TEMP目录设置在根目录下(Windows下设置用户的环境变量,把里面的TEMP 和TMP 全部设置成C:\TEMP)
二、编译前的一些准备工作
由于Qt4.8在VS环境下的一些问题,为了避免编译中途出现,需要修改有:
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;
搜索整个文件,将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));
替换成
return WEB_UI_STRING("Look Up \"<selection>\"", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));
如不修改将出现编译Webkit 时会出现 U1077错误。
三、编译过程
依次打开
开始->所有程序->Microsoft Visual Studio 2010->Visual Studio Tools->Visual Studio 命令提示(2010)
输入命令进入到源码包的目录下。如图:
接下来进行编译前的配置工作。执行配置,完整命令如下:
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
配置完成,可以下一步nmake,以开始执行编译。
一些说明:
1、命令最后的-nomake demos -nomake examples -nomake docs,不编译demos,exampls,docs文件,因为编译之后十分大!可达27G-28G。原因是静态库版本,每个程序都单独集成了库,随随便便都可以达到15M!加上这些选项后,这样既可以提高编译速度,也能减小编译后的体积。如果以后想编译,可单独编译,不影响使用。
2、网上资料一般都会有nmake clean,nmake confclean步骤,但强烈建议不要执行上述两个清理工作,编译成功就到此结束。因为会造成后面VS2010编译Qt程序以及QtSDK编译程序出现各种问题,如找不到config.h,qtmaind.lib等等。
3、不建议在configure添加-prex 指定nmake install安装目录,后经实验,编译后,的确可以实现编译完成后能实现静态库链接,且在QtCreator编译出静态程序,但是在VS2010编译程序时,出现很多找不到PDB的警告,所以舍弃之。
四、安装VS插件
安装文件为qt-vs-addin-1.1.10.exe。安装完成后,打开VS2010,可以通过QT菜单进行QT编译库定位
五、打开QT工程
打开QT工程后,稍稍等待左下角提示关联文件包含提示结束,出现“就绪”的提示后,即可像编译普通VC程序一样,点“编译”按键进行编译以及通过调试菜单进行调试。
后言:
我发现,WIN7的截图工具十分好用,推荐一下!!!!!
【原创】WIN7+VS2010+QT4.8.1+静态编译 全过程
标签:
原文地址:http://www.cnblogs.com/xiaole10368/p/5384432.html