Windows下靜態編譯Qt4

2022-01-15 20:21:02 字數 1442 閱讀 6101

然後依次解壓mingw-gcc440_1.zip、安裝qt-win-opensource-4.7.4-mingw.exe。記得要將gcc的目錄和qt的目錄新增到環境變數中。

然後開啟dos視窗並切換到qt的目錄(比如我的是d:\qt\4.7.4),再設定兩個變數

set qtdir=d:\qt\4.7.4

set qmakespec=win32-g++

再編輯d:\qt\4.7.4\mkspecs\win32-g++\qmake.conf檔案(最好先備份),改兩處:

qmake_lflags = -enable-stdcall-fixup -wl,-enable-auto-import -wl,-enable-runtime-pseudo-reloc

修改為qmake_lflags = -static -enable-stdcall-fixup -wl,-enable-auto-import -wl,-enable-runtime-pseudo-reloc

再將qmake_lflags_dll = -shared

修改為qmake_lflags_dll = -static

再執行命令:

configure -platform win32-g++ -release -opensource -static -fast -qt-sql-sqlite -plugin-sql-sqlite -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-webkit -nomake examples -nomake docs -nomake demos

如果有提問是否遵守lgpl協議,選y。配置完成後,最後兩句是這樣的:

qt is now configured for building. just run mingw32-make.

to reconfigure, run mingw32-make confclean and configure.

cd src

mingw32-make -i -k

注意:我們只在在qt子目錄src裡執行make。不要在整個qt庫的大目錄下執行make。只在src目錄make,這樣只編譯核心的qt庫和一些外掛程式,節省時間,而且有核心qt庫就夠用了。

如果在d:\qt\4.7.4\ 整個大目錄下執行make,那麼make還會去重新編譯生成tools目錄下的**,重新做工具程式,像assistant.exe、designer.exe、linguist.exe、qmlviewer.exe等等(生成後全在bin目錄)。這些工具使用靜態庫生成後巨大無比。這些工具程式不管是靜態鏈結還是動態鏈結生成的,對我們程式設計壓根沒影響,都一樣用。

qt4.7.4_win32靜態庫.part2.rar: 

精簡版只保留了編譯時需要的庫檔案和qmake等必要的工具,解壓下來有500m左右。

注意:只有解壓到d盤根目錄下才能使用

編譯器用的是mingw-7.2.exe: 

靜態編譯QT4

安裝qt sdk 後,預設採用的是動態鏈結庫的編譯方式,如果需要發布程式,需要在可執行的exe檔案中新增必須的動態鏈結庫,然而有些動態鏈結庫檔案很大,這並不是我們想要的結果。最好的辦法是提交乙個靜態鏈結的程式。但是安裝的qt是動態編譯的,要生成靜態的版本,就需要自己重新進行編譯。首先需要修改位於 m...

windows下 Qt 靜態編譯

似乎一直沒有靜態編譯qt的需求 一不在沒有管理員許可權的機器上使用,二不製作綠色軟體,三.動態編譯工作得很好,再配合 nsis 製作乙個安裝包,有什麼必要靜態編譯呢?正好利用週末時間,自己嘗試編譯一下,順便整理一下,看看到底會發生什麼 儘管以後還是用動態編譯 沒特殊說明的話,以下討論的是 msvc2...

windows下 Qt 靜態編譯

似乎一直沒有靜態編譯qt的需求 一不在沒有管理員許可權的機器上使用,二不製作綠色軟體,三.動態編譯工作得很好,再配合 nsis 製作乙個安裝包,有什麼必要靜態編譯呢?正好利用週末時間,自己嘗試編譯一下,順便整理一下,看看到底會發生什麼 儘管以後還是用動態編譯 沒特殊說明的話,以下討論的是 msvc2...