原文:http://hi.baidu.com/fairysky/blog/item/883cd1b474c33c7b8bd4b219.html
最新的QT4.5發布了,增加了LGPL2.1協議,實在是眾望所歸啊。。。
參考資料:
1、 【轉貼】VC 2005 下如何編譯安裝并開發 QT 4.4.0 應用程序
2、 qt4:qt編譯安裝信息的解讀
3、 qt4:windows下編譯qt 4.3.2
4、 網友已編譯好的Qt開源版下載(含Debug庫) (主要是參考它的configure參數)
還有QT安裝目錄下的“ install ”文件
一、下載QT4.5(本文僅討論LGPL/Free Downloads)
下載地址:http://download.qtsoftware.com/qt/source/qt-win-opensource-src-4.5.0.zip
解壓,假定解壓到E:\qt-win-opensource-src-4.5.0 (解壓路徑不要包含空白,另外也建議不要包含中文名稱),解壓后目錄層次:
二、設置環境變量
set QTDIR=E:\qt-win-opensource-src-4.5.0
set path=%path%;%QTDIR%\bin
方法:
“我的電腦”->“屬性”->“高級”->“環境變量”,彈出一個對話框,
然后“xxx的用戶變量”->“新建”,彈出一個輸入對話框,輸入:
“變量名” --- QTDIR
“變量值” --- E:\qt-win-opensource-src-4.5.0
同上,修改path環境變量方法:
在“xxx的用戶變量”中選擇“PATH”,然后“編輯”,在“變量值”的最后輸入“ ;%QTDIR%\bin ”(不帶引號,注意有一個分號)
三、編譯QT
1、在命令行設置好vc編譯器環境變量(我是通過一個簡單的批處理文件來設置好vc編譯器的環境變量)
1 @echooff
2 call"C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
3
4 rem 在這里,調用sqlite3的環境變量設置批處理是因為在后來qt編譯時要用到sqlite,qt需要知道sqlite的include和lib以及dll的位置
5 call"D:\環境變量批處理設置\sqlite3環境變量.bat"
過程我就不多說了(如果有不明白的,可以留言;我個人認為盡管在windows下有VS IDE,但是作為一個編程人員,掌握基本的命令行編譯知識應該是一個基本的技能)
如果設置好了vc編譯器環境變量,運行" cl/? " (不包括引號),如果輸出了cl.exe幫助說明信息,則表示vc編譯器環境變量設置成功。
可以通過" set path "," set include "," set lib " 命令查看path、include、lib環境變量
2、配置QT(configure)
在命令行設置好vc編譯器環境變量之后,進入到QT解壓目錄(%QTDIR%),然后輸入" configure/? "(configure位于%QTDIR%目錄下),查看configure的幫助。
下面是我的configure配置參數:
1、編譯shared版(默認編譯為shared版,不需要設置),并且編譯debug和release兩個版本(-debug-release)
2、使用vc2008(包括express版)(-platform win32-msvc2008)
3、使用qt自帶的zlib、gif、libpng、libmng、libtiff、libjpeg (
-qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg
)
4、編譯數據庫插件支持sqlite、odbc(需要相應的C/C++頭文件和庫的支持)(
-plugin-sql-sqlite -plugin-sql-odbc
)
5、不支持qt3 (-no-qt3support)
其中第4條,我們已經在
vc編譯器環境變量設置.bat
進行了設置,通過
call
"D:\環境變量批處理設置\sqlite3環境變量.bat"
設置了sqlite的include和lib以及dll的搜索路徑(dll搜索路徑設置在path環境變量中)
附加
6、無mmx指令集支持 (-no-mmx)
7、無3dnow指令集支持 (-no-3dnow)
8、無sse和sse2指令集支持 (-no-sse -no-sse2)
9、無direct3d支持(我用不上direct3d,默認不編譯direct3d)
10、無openssl支持 (-no-openssl)
11、無dbus支持(dbus是一個類似于IPC的實現,不過我好像用不上) (-no-dbus)
12、無phonon支持以及phonon向后兼容性支持(phonon是一個基于kde的多媒體支持,
并且主要是用于那些比較古老的編譯器,在我的機器上不需要) (-no-phonon -no-phonon-backend)
13、不編譯webkit模塊(類似于瀏覽器的東西,我個人不需要) (-no-webkit)
14、不支持腳本工具scripttools (-no-scripttools)
生成工程文件相關
15、無生成sln以及vcproj文件(生成的sln文件好像不好使,不能用vc2008打開),只生成makefile文件 (-no-dsp -no-vcproj)
上述只是我個人的需求,大家可以根據自己的需要進行調整(我這么做只是為了盡可能的縮短編譯時間)
configure -debug-and-release -platform win32-msvc2008 -qt-zlib -qt-gif -qt
-libpng -qt-libmng -qt-libtiff -qt-libjpeg -plugin-sql-sqlite -plugin-sql-
odbc -no-qt3support -no-mmx -no-3dnow -no-sse -no-sse2 -no-openssl -no-dbus
-no-phonon -no-phonon-backend -no-webkit -no-scripttools -no-dsp -no-vcproj
configure大概需要執行5~10分鐘,如果對configure產生的信息不清楚的話,可以看看這篇文章(qt4:qt編譯安裝信息的解讀)
configure.exe主要是做兩件事:
1)編譯qmake,并將編譯好的qmake.exe拷貝到bin目錄下(這又是之前要添加" %QTDIR%\bin ”到path環境變量中的原因)
2)生成makefile文件(包括編譯qt的makefile文件以及examples、demos、tools等的makefiles文件)
三、編譯QT
在QT的解壓目錄下執行nmake(確保configure.exe運行成功,configure會在QT的解壓目錄下生成一個Makefile文件)
為了縮短編譯時間,我們可以現將examples和demos目錄轉移(例如新建一個文件夾,然后將這2個目錄移到該目錄下),這樣nmake在編譯到examples和demos時會報錯,然后退出編譯過程
然后就是漫長的等待了~~~(編譯的時候就去干點別的吧,運動運動
)
按照我上面的操作,編譯完成qt大概需要1個小時;占用硬盤2G左右;如果完整的編譯qt、examples、demos),那么大概需要4~6個小時,占用硬盤10G左右
)
四、清理收尾工作
編譯完成之后,要進行清理,不然那么多硬盤被占用了,太心疼了
運行" nmake confclean "(參見" install "文件),這樣清理完成之后,整個qt解壓目錄大小約為770M左右
五、編譯demos
將examples、demos目錄移回原位,如果想要運行demos,可以通過命令行進入到demos目錄下(保證環境變量已設置好),然后運行nmake(又是一段漫長的時間,1個小時左右)
編譯demos完成之后,在qt解壓目錄下的bin目錄中有一個" qtdemo.exe ",運行
同樣地,我們也要進行清理工作,進入到demos目錄(同上,要保證環境變量已設置好),運行" nmake clean "
這樣我們就能看到一部分的運行示例了(為什么是部分?因為qtdemo.exe不僅僅是包含demos目錄中的例子,同樣也包含examples目錄中的例子,如果想要查看完整的qtdemo.exe,還需要編譯examples,方法同demos)
最后,將Qt路徑添加到VC編譯環境中。(參見
【轉貼】VC 2005 下如何編譯安裝并開發 QT 4.4.0 應用程序
)
工具->選項->項目和解決方案->VC++目錄,
在包含文件一欄添加: E:\qt-win-opensource-src-4.5.0\include\QtGui;E:\qt-win-opensource-src-4.5.0\include\QtCore;E:\qt-win-opensource-src-4.5.0\include
在庫文件一欄添加E:\qt-win-opensource-src-4.5.0\lib
將QT安裝路徑添加到Path系統環境變量中,例如:E:\qt-win-opensource-src-4.5.0\bin(這一步可以省略,在本文的“ 二、設置環境變量 ”已經設置好了)
至此,QT和vc編譯環境基本上配置完成了