一、准備軟件
1. MinGW (C:\Qt\MinGW)
http://pan.baidu.com/share/link?shareid=174269&uk=673227135
這個文件解壓就可以用了。
2. ActivePerl
3. qt-win-opensource-4.8.4-mingw.exe (C:\Qt\4.8.4)
4. qtcreator2.6x
二、安裝軟件
1. qt-win-opensource-4.8.4-mingw.exe,提示MinGW路徑時,指定到正確位置(C:\Qt\MinGW)
2. 安裝Perl環境,一路Next即可
3. 安裝QtCreator
三、標准庫編譯
1. 配置編譯選項
1)打開C:\Qt\4.8.4\mkspecs\win32-g++\qmake.conf
(建議先備份一下)
在QMAKE_LFLAGS后面加上 -static
並將QMAKE_LFLAGS_DLL后面的 -shared 改為 -static
(注:如果用Qt4.8.3版本,
修改QT 4.8.3安裝目錄下mkspecs\win32-g++\qmake.CONF文件,在qmake.CONF文件中QMAKE_IDC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}idc.exe
之后一行添加:QMAKE_RCC = $$[QT_INSTALL_BINS]$${DIR_SEPARATOR}rcc.exe
否則,工程中有qrc文件時,會出錯。4.8.4版本沒有此問題)
保存並關閉
2)將C:\Qt\4.8.4\bin 下的syncqt與syncqt.bat 這兩個文件刪除或改名
否則在編譯時會提示找不到perl環境
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));
如不修改將出現編譯Webkit 時會出現 U1077錯誤。
2. 開始編譯
靜態編譯,只要release版本就夠了。debug版,靜態編譯就沒有必要了,debug版隨便一個工程,生成的執行文件都要上百兆甚至幾百兆,調試時,很慢。那么release靜態版和debug動態版如何共存呢?稍后再介紹。
打開Qt 4.8.4 Command Prompt軟件,輸入
configure -confirm-license -opensource -platform win32-g++ -release -static -ltcg -no-qt3support -fast -exceptions -accessibility -rtti -stl -qt-sql-sqlite -qt-sql-odbc -qt-zlib -qt-libpng -qt-libtiff -qt-libjpeg -qt-libmng -multimedia -audio-backend -script -scripttools -nomake demos -nomake examples -nomake docs -qt-style-windows -qt-style-windowsxp -qt-style-windowsvista -qt-style-plastique -qt-style-cleanlooks -qt-style-motif -qt-style-cde -plugin-sql-sqlite -plugin-sql-odbc
configure參數很多,可以參考它的幫助,按自己需要增減參數。
PS:這個配置僅編譯release版本,如果需要同時需要靜態版的Debug版本,需要把-release 改為 -debug-and-release
耐心等待一會,直到提示:
Qt is now configured for building. Just run mingw32-make.
To reconfigure, run mingw32-make confclean and configure.
接着輸入 mingw32-make
等編譯結束,如果沒有什么error fail的提示,就恭喜你成功啦!
四、配置QT Creator
打開QT Creator, 菜單Tools==》Option==》Build&Run==》
Compiler選項卡:
如果沒有自動檢測到,手工點Add按鈕,選MinGW,名稱就叫MinGW吧,Compiler path:C:\Qt\MinGW\bin\g++.exe
點擊Apply
Qt Versions選項卡:
點Add按鈕,選擇C:\Qt\4.8.4\bin\qmake.exe,
version name: Qt4.8.4(4.8.4)
點擊Apply
Kits選項卡:
點Add按鈕,name: qtstatic_rel
Device type: Desktop
Compiler: MinGW
Debuger: release版本無所謂,在debug版一定要正確選擇,否則無法調試
Qt version: Qt4.8.4(4.8.4)OK,至此,就可以編譯靜態的qt程序了,生成的exe文件可以獨立運行。不過生成的exe文件體積比較大,可以用upx壓縮一下,會縮小到原來的40%左右。
附一份vs2010 編譯64Bit靜態庫 簡明過程
1.下載源碼 qt-everywhere-opensource-src
2.調用vs2010命令行 Visual Studio x64 Win64 命令提示(2010)
3.切換到解壓目錄,運行configure -static -release -no-qt3support -platform win32-msvc2010 -qt-sql-psql -qt-sql-sqlite
4.jom.exe -j N N代表核數
5.漫長等待,編譯完成