詳解Qt,並舉例說明動態編譯(shared)和靜態編譯(static)以及debug and release 編譯版本區別(可產生靜態版的Debug版本,需要把-release 改為 –debug-and-release)


作為初入Qt學習的新人,花了整整一兩天時間,對Qt編譯版本等問題進行了一步步探索,首先感謝網站博客中文章,開始也不是很明白一些幾個問題:

1、Qt版本問題

作為初學者,可能下載時這么多版本,如何選擇呢?

版本很多,開發平台Windows、mac、linux等;這里以windows平台為例,x86(Win32位);

winrt   平板電腦下 ;

mingw  Minimalist GNU For Windows,是將GNU開發工具移植到Win32平台下的工具集,用其開發的程序不需要額外的第三方DLL支持即可以直接在Windows下運行;

msvc 2010,2013等,這是微軟VC平台,按照了VC對應版本可以選這個,就不用再另外下載MinGw,后綴_64,說明編譯的程序在64位上運行

opengl 圖像渲染用

具體要按照你的開發環境,系統等來選擇合適的

2、靜態庫下載

在網上尋找 Qt 靜態庫,就搜索 Qt Static Builds ,目前找到兩個地方有: http://sourceforge.net/projects/static-qt/ https://github.com/fostersoftware/QtStaticWindows 第一個是 SourceForge 上的項目,第二個是 GitHub 上的項目,這兩個網站希望新手記牢了, 以后要找好東西都可以去這兩個網站。 GitHub 上面的 QtStaticWindows 比較新,是 5.3.2 版本的,所以就選這個來做教程示范。 從 GitHub 網站下載東西,可以直接點擊網頁右邊“Download ZIP”
還有就是現在百度雲盤下,就不用有些CSDN下載中有的要求積分,這里是免費的,希望對還不是CSDN成員的初學者能夠方便,不至於開始就感覺,下載軟件都這么難。
Qt5.3.2靜態編譯的庫QtStaticWindows5.3.2-new.7z 網盤鏈接下載:http://pan.baidu.com/s/1mgIGPdA
指導等見該鏈接:http://www.chinadmd.com/file/evxxovcexr3s6oeuvuzsozpt_1.html  
 
        
3、Qt動態編譯和靜態,還有debug 和release(調試和發布)
 
        

上面是本人通過Qt Creator建立的一個工程文件,名稱為“shared_static”,之前網上下載Qt 4.8.5,一般是動態編譯,但是只能在該筆記本或台式機上,如果要其他電腦也直接運行,必須要附帶動態庫,發布時文件較多。

如新建一個Qtgui空窗口,mingw編譯程序運行需要動態庫mingwm10.dl、QtCore4.dll、QtGui4.dll、libgcc_s_dw2-1.dll。

小時還可以接受,如果動態庫很多,就覺得不方便,就像可以只有一個exe跑遍任何windows電腦。

下面教你如何動態庫情況下,改為靜態編譯模式:

最初動態修改為靜態方法:
1、C:\Qt\4.8.5\mkspecs\win32-g++\qmake.conf,具體看你安裝路徑,找到qmake.conf文件打開(notepad或txt都行),修改下面兩行:
QMAKE_LFLAGS_DLL后面的 –shared 改為 –static
QMAKE_LFLAGS后面加上 –static
2、C:\Qt\4.8.5\bin 下的syncqt與syncqt.bat 這兩個文件刪除或改名
3、打開Qt 4.8.5 Command Prompt軟件,輸入
  configure –static –release –no-exceptions回車

 

如果需要同時需要靜態版的Debug版本,需要把-release 改為 –debug-and-release

回車后會有版本選擇和用戶協議,先輸入”o”(Open Source) ,下一個要輸入時輸入“y”(Yes)

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

直到再次出現:
4、接着輸入 mingw32-make sub-src

我從22點多直接安裝到次日2點的才完成(不過我是選擇static下debug和release兩種構建套件),同時為了保證運行速度,還是不要運行大的程序,可以去睡覺了,真是漫長。。。。。。

直到再次出現:

恭喜你完成動態到靜態的修改

5、工具-〉選項,選擇Qt version,ADD(添加)C:\Qt\4.8.5\qmake 選擇qmake.exe,其他的選項同動態編譯時一樣選擇。

恭喜你,現在新建工程,然后選擇模式,就可以編譯靜態下的exe了

本人是參考這個,具體見http://www.uzzf.com/news/2131.html,在這里非常感謝版主。

 

4、Qt動態編譯和靜態,還有debug 和release生產exe文件大小問題

 

 
        

動態debug

 

動態release

靜態debug

靜態release

 

exe文件大小比較
模式 大小KB
動態release 68
動態debug 787
靜態release 10645
靜態debug 169656

可以清楚的看到,靜態比動態模式式生成的exe文件大的多,而debug又比release大的多。

這是本人這幾天學習心得,作為新人碰到的一些問題,考慮后面新人可能又會碰到類似問題,覺得還是寫這篇博客,僅供學習,禁止抄襲,發揚高尚品德。

 

5、下載Qt軟件的網站推薦下

http://download.qt.io/official_releases/qt/5.4/5.4.1/

http://www.qt.io/download-open-source/#section-2

http://www.qter.org/Qter開源社區

http://www.mingw.org/

 

http://blog.csdn.net/goodtomsheng/article/details/44829825


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM