相關(guān)資訊
- QQ堂介紹及qq堂4.2全能掛下載專題
- 關(guān)于ASP生成靜態(tài)Html文件的技術(shù)分享
- ASP生成靜態(tài)網(wǎng)頁(yè)中實(shí)現(xiàn)閱讀次數(shù)的程
- UC瀏覽器7.8for iPhone版本最新評(píng)測(cè)
- QT程序安裝包制作 在Windows下發(fā)布
- 網(wǎng)頁(yè)翻譯絕佳助手——有道詞典4.2
- 為堵“追蹤門” 蘋果急推ios4.3.3
- 競(jìng)爭(zhēng)對(duì)手和睦相處 IE9給Firefox 4.
- iOS 4.3發(fā)現(xiàn)小錯(cuò)誤蘋果及時(shí)更新
- 火狐4.0應(yīng)不應(yīng)該支持XP
本類常用軟件
-
福建農(nóng)村信用社手機(jī)銀行客戶端下載下載量:584204
-
Windows優(yōu)化大師下載量:416898
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機(jī)銀行客戶端下載下載量:365699
-
快播手機(jī)版下載量:325855
最最初踏上QT之路是受到了XiaomaGee的指點(diǎn),相比于常規(guī)的窗口程序開(kāi)發(fā),QT有著以下特點(diǎn):
1、 優(yōu)良的跨平臺(tái)特性(支持Win、Linux、Mac 不同的平臺(tái)下只需重新編譯即可使用)
2、 面向?qū)ο?/p>
3、 豐富的API
4、 支持2D/3D圖形渲染,支持OpenGL
5、 大量的開(kāi)發(fā)文檔(無(wú)需像VC一樣裝幾個(gè)G的MSDN)
6、 XML支持
其實(shí),僅僅是第一點(diǎn),就足以讓我從VC轉(zhuǎn)向QT。并且在本人的學(xué)習(xí)過(guò)程中發(fā)現(xiàn),QT可以很輕易就打造出漂亮的界面,實(shí)在是讓我愛(ài)不釋手。不論是打造一些實(shí)用小程序,或是開(kāi)發(fā)上位機(jī),QT都是很不錯(cuò)的選擇!
之前用VC++的時(shí)候,只要是編譯出來(lái)的exe,就可以放到大多數(shù)的電腦上運(yùn)行,而QT不同,由于QT默認(rèn)是動(dòng)態(tài)編譯,正常運(yùn)行需要調(diào)用QT的標(biāo)準(zhǔn)庫(kù)(即.dll),因此要想脫離IDE單獨(dú)運(yùn)行,必須滿足:將關(guān)聯(lián)的dll拷貝至.exe同目錄(或system32文件夾內(nèi)),或者在環(huán)境變量中添加QT標(biāo)準(zhǔn)庫(kù)的路徑。否則就會(huì)出現(xiàn)如下警告:
這就使得QT的通用性受到了局限,尤其是用QT開(kāi)發(fā)上位機(jī)時(shí),如果需要在某臺(tái)電腦上觀測(cè)數(shù)據(jù),除了exe,還得拷貝一大堆dll過(guò)去,顯得很麻煩,那么,有沒(méi)有辦法可以滿足,僅需要一個(gè)exe文件,就可以在所有裝有win系統(tǒng)下的電腦上運(yùn)行呢?答案是肯定的!
這就需要將QT的標(biāo)準(zhǔn)庫(kù)進(jìn)行靜態(tài)編譯。
本人曾在網(wǎng)上查找了大量資料,經(jīng)過(guò)各種嘗試各種失敗,最終完成了QT4.8最新版本的庫(kù)編譯,F(xiàn)將整個(gè)步驟,從軟件安裝開(kāi)始,整理出來(lái)供大家參考與交流。
PS:這里選用的是Windows系統(tǒng)下的QT SDK作為開(kāi)發(fā)環(huán)境,如果用VS編譯,僅需在個(gè)別步驟稍作修改即可,本人不用VS很久,所以沒(méi)有親自測(cè)試。
步驟一:下載軟件安裝包
一共需要下面3個(gè)安裝包
1、 QT下載
地址:http://qt.nokia.com/downloads
下載QT SDK及QT Library
選擇離線安裝包
選擇MinGW版的QT標(biāo)準(zhǔn)庫(kù)(VS版的對(duì)號(hào)入座)
QT4.8的標(biāo)準(zhǔn)庫(kù)編譯需要用到perl
下載地址http://www.activestate.com/activeperl/downloads
步驟二:安裝軟件
1、 安裝QT SDK
目前QT已經(jīng)被Nokia收購(gòu),因此安裝包中會(huì)有很多手機(jī)程序的開(kāi)發(fā)組件,如果不需要,按照下面給出的配置,去掉不需要的組件即可
首先在這一頁(yè)選擇“Custom”
API部分全部去掉
“Development Tools”中選擇“QT Creator”(默認(rèn))和“Desktop QT”中的MinGW版
個(gè)人判斷:這個(gè)庫(kù)用于QT的動(dòng)態(tài)編譯,選擇安裝,即可在今后實(shí)現(xiàn):調(diào)試時(shí)使用動(dòng)態(tài)庫(kù),方便快捷;發(fā)布時(shí)使用靜態(tài)庫(kù),便于使用。
這里我又選擇了一遍MinGW,保險(xiǎn)起見(jiàn):)
2、 安裝QT標(biāo)準(zhǔn)庫(kù)
這里有一點(diǎn)要注意,安裝前的最后一步需要選擇MinGW的安裝目錄,在QTSDK文件夾下
選擇mingw的文件夾即可
3、 安裝Perl環(huán)境
一路狂點(diǎn)Next即可
步驟三:標(biāo)準(zhǔn)庫(kù)的編譯
1、 配置編譯選項(xiàng)
1)打開(kāi)X:\Qt\4.8.0\mkspecs\win32-g++\qmake.conf (X為QT安裝盤符)
(建議先備份一下)
在QMAKE_LFLAGS后面加上 –static
并將QMAKE_LFLAGS_DLL后面的 –shared 改為 –static
保存并關(guān)閉
2)將X:\Qt\4.8.0\bin 下的syncqt與syncqt.bat 這兩個(gè)文件刪除或改名
否則在編譯時(shí)會(huì)提示找不到perl環(huán)境,如下圖所示
2、 開(kāi)始編譯
打開(kāi)Qt 4.8.0 Command Prompt軟件,輸入
configure –static –release –no-exceptions
PS:這個(gè)配置僅編譯release版本,如果需要同時(shí)需要靜態(tài)版的Debug版本,需要把-release 改為 –debug-and-release
回車后會(huì)有版本選擇和用戶協(xié)議,先后按”o”(Open Source) “y”(Yes)
…………耐心等待一會(huì)…………
配置完成后會(huì)出現(xiàn)下面這個(gè)畫面:
————在開(kāi)始這個(gè)步驟前,請(qǐng)確保你有至少2個(gè)小時(shí)的空閑時(shí)間————
接著輸入 mingw32-make sub-src
回車………該干啥干啥去吧…………直到你看到下面這個(gè)畫面:
PS:編譯過(guò)程中可以瀏覽網(wǎng)頁(yè),可以刷微博聊QQ,但不建議跑大型程序,否則會(huì)大幅降低編譯速度。
當(dāng)你看到這個(gè)畫面時(shí),恭喜你,馬上就成功了~
步驟四:配置QT Creator
打開(kāi)QT Creator新建一個(gè)工程,在Project界面點(diǎn)擊下圖所示的Manage按鈕
點(diǎn)擊ADD
進(jìn)入目錄X:\Qt\4.8.0\qmake 選擇qmake.exe 如下圖
底下的Version Name可以自己起(我用的Qt 4.8.0 Static)
返回Project界面,添加剛才選擇的編譯器
選擇好之后,記得確認(rèn)選擇的是QT4.8.0的Release版本(靜態(tài)Debug版沒(méi)有編譯,所以選擇該模式會(huì)出錯(cuò))
編譯一下,進(jìn)入工程目錄,直接雙擊程序,完美運(yùn)行!
至此,QT靜態(tài)編譯完成。
由于QT直接編譯出來(lái)的exe體積較大,為了節(jié)省空間,便于保存與傳播,可以壓縮一下,這里選用UPX
拷貝UPX.EXE至C:\Windows\System32目錄下
在cmd中輸入upx(+空格)(+文件路徑+文件名)(+回車)
即可出現(xiàn)下圖
壓縮比例為39.93% 可見(jiàn)效果還是非常可觀的
至此,QT的靜態(tài)庫(kù)編譯全部完成。
為了保證教程的準(zhǔn)確性,我在寫教程前,已將QT完整刪除并重新安裝編譯,每完成一步就寫一步的教程。我的編譯方法未必是最好的,但是按照我的方法,保證可以成功!
- 第 3 樓 山西朔州電信 網(wǎng)友 客人 發(fā)表于: 2014/10/31 19:08:30
- 谢谢分享!!!!!!!
- 第 2 樓 北京開(kāi)心網(wǎng) 網(wǎng)友 客人 發(fā)表于: 2013/6/18 21:57:31
- 寫的太好了,但是我沒(méi)找到command prompt軟件,我是4.8.1地版本。用qt for...那個(gè),總提示找不到configure命令
- 第 1 樓 廣東廣州電信 網(wǎng)友 客人 發(fā)表于: 2013/1/22 16:50:20
- 請(qǐng)問(wèn),在這種情況下怎么編譯mysql驅(qū)動(dòng)呢?