[轉]QT 4.8 靜態庫編譯方法

最最初踏上QT之路是受到了XiaomaGee的指點,相比於常規的窗口程序開發,QT有着如下特色:html

  一、 優良的跨平臺特性(支持Win、Linux、Mac 不一樣的平臺下只需從新編譯便可使用)小程序

  二、 面向對象學習

  三、 豐富的API測試

  四、 支持2D/3D圖形渲染,支持OpenGLspa

  五、 大量的開發文檔(無需像VC同樣裝幾個G的MSDN)debug

  六、 xml支持3d

  其實,僅僅是第一點,就足以讓我從VC轉向QT。而且在本人的學習過程當中發現,QT能夠很輕易就打造出漂亮的界面,實在是讓我愛不釋手。不管是打造一些實用小程序,或是開發上位機,QT都是很不錯的選擇!調試

  以前用VC++的時候,只要是編譯出來的exe,就能夠放到大多數的電腦上運行,而QT不一樣,因爲QT默認是動態編譯,正常運行須要調用QT的標準庫(即.dll),所以要想脫離IDE單獨運行,必須知足:將關聯的dll拷貝至.exe同目錄(或system32文件夾內),或者在環境變量中添加QT標準庫的路徑。不然就會出現以下警告:xml

  

  這就使得QT的通用性受到了侷限,尤爲是用QT開發上位機時,若是須要在某臺電腦上觀測數據,除了exe,還得拷貝一大堆dll過去,顯得很麻煩,那麼,有沒有辦法能夠知足,僅須要一個exe文件,就能夠在全部裝有win系統下的電腦上運行呢?答案是確定的!htm

  這就須要將QT的標準庫進行靜態編譯。

  本人曾在網上查找了大量資料,通過各類嘗試各類失敗,最終完成了QT4.8最新版本的庫編譯。現將整個步驟,從軟件安裝開始,整理出來供你們參考與交流。

  PS:這裏選用的是Windows系統下的QT SDK做爲開發環境,若是用VS編譯,僅需在個別步驟稍做修改便可,本人不用VS好久,因此沒有親自測試。

  步驟一:下載軟件安裝包

  一共須要下面3個安裝包

  

  一、 QT下載

  地址:http://qt.nokia.com/downloads

  下載QT SDK及QT Library

  選擇離線安裝包

  

  選擇MinGW版的QT標準庫(VS版的對號入座)

  

  QT4.8的標準庫編譯須要用到perl

  下載地址http://www.activestate.com/activeperl/downloads

  步驟二:安裝軟件

  一、 安裝QT SDK

  目前QT已經被Nokia收購,所以安裝包中會有不少手機程序的開發組件,若是不須要,按照下面給出的配置,去掉不須要的組件便可

  首先在這一頁選擇「Custom」

  

  API部分所有去掉

  

  「Development Tools」中選擇「QT Creator」(默認)和「Desktop QT」中的MinGW版

  我的判斷:這個庫用於QT的動態編譯,選擇安裝,便可在從此實現:調試時使用動態庫,方便快捷;發佈時使用靜態庫,便於使用。

  

  這裏我又選擇了一遍MinGW,保險起見:)

  

  二、 安裝QT標準庫

  這裏有一點要注意,安裝前的最後一步須要選擇MinGW的安裝目錄,在QTSDK文件夾下

  選擇mingw的文件夾便可

  

  三、 安裝Perl環境

  一路狂點Next便可

  步驟三:標準庫的編譯

  一、 配置編譯選項

  1)打開X:\Qt\4.8.0\mkspecs\win32-g++\qmake.conf (X爲QT安裝盤符)

  (建議先備份一下)

  在QMAKE_LFLAGS後面加上 –static

  並將QMAKE_LFLAGS_DLL後面的 –shared 改成 –static

  保存並關閉

  2)將X:\Qt\4.8.0\bin 下的syncqt與syncqt.bat 這兩個文件刪除或更名

  不然在編譯時會提示找不到perl環境,以下圖所示

  

  二、 開始編譯

  打開Qt 4.8.0 Command Prompt軟件,輸入

  configure –static –release –no-exceptions

  PS:這個配置僅編譯release版本,若是須要同時須要靜態版的Debug版本,須要把-release 改成 –debug-and-release

  回車後會有版本選擇和用戶協議,前後按」o」(Open Source) 「y」(Yes)

  …………耐心等待一會…………

  配置完成後會出現下面這個畫面:

  

  ————在開始這個步驟前,請確保你有至少2個小時的空閒時間————

  接着輸入 mingw32-make sub-src

  回車………該幹啥幹啥去吧…………直到你看到下面這個畫面:

  PS:編譯過程當中能夠瀏覽網頁,能夠刷微博聊QQ,但不建議跑大型程序,不然會大幅下降編譯速度!!

  

  當你看到這個畫面時,恭喜你,立刻就成功了~

  步驟四:配置QT Creator

  打開QT Creator新建一個工程,在Project界面點擊下圖所示的Manage按鈕

  

  點擊ADD

  

  進入目錄X:\Qt\4.8.0\qmake 選擇qmake.exe 以下圖

  

  底下的Version Name能夠本身起(我用的Qt 4.8.0 Static)

  返回Project界面,添加剛纔選擇的編譯器

  

  選擇好以後,記得確認選擇的是QT4.8.0的Release版本(靜態Debug版沒有編譯,因此選擇該模式會出錯)

  編譯一下,進入工程目錄,直接雙擊程序,完美運行!

  

  至此,QT靜態編譯完成。

  因爲QT直接編譯出來的exe體積較大,爲了節省空間,便於保存與傳播,能夠壓縮一下,這裏選用UPX

  拷貝UPX.EXE至C:\Windows\System32目錄下

  在cmd中輸入upx(+空格)(+文件路徑+文件名)(+回車)

  便可出現下圖

  

  壓縮比例爲39.93% 可見效果仍是很是可觀的

  至此,QT的靜態庫編譯所有完成。

  爲了保證教程的準確性,我在寫教程前,已將QT完整刪除並從新安裝編譯,每完成一步就寫一步的教程。個人編譯方法未必是最好的,可是按照個人方法,保證能夠成功!

 

轉自:http://www.uzzf.com/news/2131.html

相關文章
相關標籤/搜索