下載源代碼,注意必定是源碼壓縮包如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/,一塊兒探討學習。