编译QT以前有几处源码的编译的问题必须解决:web
1)、qt的安装路径,以及之后使用vs创建qt项目的时候,不能有中文,路径中也不能有空格.sql
2)、删除源码包中bin目录下的syncqt和syncqt.dat文件,如你不放心可将其更名或剪切到别的位置。如不修改将发生 Perl not found in environment - cannot run syncqt 错误。shell
3)、必定要修改\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;ui
4)、关因而否须要修改\mkspecs\win32-msvc2010下的qmake.conf文件中的QMAKE_CFLAGS_RELEASE,QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO,QMAKE_CFLAGS_DEBUG这3处后面的MD,MDd,取决你打算动态仍是静态编译,若是是静态编译的话,改成:MT,MTd(最后还要在vs2010中的项目属性中将MD改成MT,以实如今没有VC库的电脑也能运行Qt程序。)。若是是动态编译的话能够不改。debug
5)、必定要修改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));(请直接将以上英文部分一次性全复制,其实它们是一行,不要分行复制)。若是你仔细看原来的那行的话,你会发现双引号是错误的,如不修改将出现编译Webkit 时会出现 U1077错误。code
如下是个人编译脚本,能够直接使用,保存为批处理文件在QT解压后的根目录运行便可:orm
<!-- lang: shell --> @CALL "C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" @set cur_dir=%cd%\ @set QTDIR=%cur_dir% @set QMAKESPEC=win32-msvc2010 @rem set ConfPara=-debug-and-release -opensource -static -system-sqlite -fast -no-dsp @rem set ConfPara=-debug-and-release -opensource -static -webkit @set ConfPara= -release -platform win32-msvc2010 -webkit -plugin-sql-sqlite -qt-sql-sqlite -opensource -nomake demos -nomake examples @set PATH=C:\Perl;C:\Perl\bin;C:\Perl\site\bin;%QTDIR%/bin;E:\sqlite\bin;%PATH% @set INCLUDE=%MINGWDIR%/include;%QTDIR%/include;%QWTDIR%/src;%LOG4QTDIR%/src;E:\sqlite\include;%INCLUDE% @set LIB=C:\Perl\lib;C:\Perl\site\lib;%MINGWDIR%/lib;%QTDIR%/lib;%QWTDIR%/lib;E:\sqlite\lib;%LIB% @echo *********************************************************************** @echo Created By Sui Libin(gmail:bygreencn.gmail.com) @echo Includes : QT 4.8.二、Visual Studio 2010 @echo QT : %QTDIR% @echo QMAKESPEC: %QMAKESPEC% @echo ConfPara: %ConfPara% @echo *********************************************************************** @type nul>%temp%\~YesOrNoA.tmp @echo. @echo !!!!Build QT? [y/n]? @del /p %temp%\~YesOrNoA.tmp>nul @if not exist %temp%\~YesOrNoA.tmp goto Buildqt @del %temp%\~YesOrNoA.tmp @goto QtEnvironment :Buildqt @type nul>%temp%\~YesOrNo.tmp @echo. @echo !!!!Start to clear project do it? [y/n]? @del /p %temp%\~YesOrNo.tmp>nul @if not exist %temp%\~YesOrNo.tmp goto Cleaning @del %temp%\~YesOrNo.tmp @goto Config :Cleaning @echo Cleaning, please waiting... @nmake clean @nmake confclean :Config @type nul>%temp%\~YesOrNo2.tmp @echo. @echo !!!!Configure project do it? [y/n]? @del /p %temp%\~YesOrNo2.tmp>nul @if not exist %temp%\~YesOrNo2.tmp goto Configuring @del %temp%\~YesOrNo2.tmp @goto Build :Configuring @echo y|configure.exe %ConfPara% @echo Create .vcproj ... @cls @qmake -tp vc -r @ :Build @echo Build it now... @cls @rem jom @nmake @ @rem pause @echo backup pdb file now... @md shared @copy lib shared @copy bin shared @copy *.cache shared :QtEnvironment @echo *********************************************************************** @echo PATH @echo %PATH% @echo *********************************************************************** @echo INCLUDE @echo %INCLUDE% @echo *********************************************************************** @echo LIB @echo %LIB% @echo *********************************************************************** @cmd /k