qt預設的編譯方式是動態編譯的,但是有時候你編寫的程式要發布出去,帶很多動態庫檔案是很繁瑣的,此時就需要靜態編譯你的程式,qt要實現靜態編譯必須庫檔案也是靜態編譯的,可以用這個命令編譯靜態庫:
配置編譯選項
開啟 %qtdir%\mkspecs\win32-g++\qmake.conf (%qtdir%為qt庫所在目錄)
在qmake_lflags後面加上
-static -enable-stdcall-fixup -wl,-enable-auto-import -wl,-enable-runtime-pseudo-reloc
並將qmake_lflags_dll後面的
-shared 改為 -static
儲存並關閉
開啟 %qtdir%\src\corelib\tools\qlocale.cpp 把 #include 改為 #include <%mingw%/include/float.h> 例如:#include
win + r 開啟執行輸入 cmd 開啟命令列,切換到qt庫的目錄下,輸入命令: configure -static -debug-and-release -no-exceptions
根據提示輸入:o 確認
然後輸入:y 確認
等待3個多小時之後....編譯完成。
如果上面的編譯命令不加 sub-src 會全部編譯,把demo都編譯了,大概得用10+個小時。
qt的靜態編譯
在預設情況下,用qtcreator編譯程式時,使用的是動態編譯。但是動態編譯執行時會依賴多種的dll庫檔案,在打包的過程中也需要帶上一大堆的dll庫檔案,否則無法執行。靜態編譯可以將需要的庫檔案直接載入到程式中,打包時不需要帶各種庫檔案,且可執行檔案exe會比動態編譯的要小很多。參考鏈結檢視具體完成...
qt靜態編譯
qt靜態編譯出現以下問題怎麼解決呢?d qt 5.9.0 qtbase src corelib global qlibraryinfo.cpp fatal error c1853 qmake pch.pch 預編譯標頭檔案來自編譯器的早期版本,或者預編譯頭為 c 而在 c 中使用它 或相反 nmak...
Qt編譯生成靜態庫(靜態編譯)
開發環境 vs2008 qt4.8.4原始碼庫 其他環境請自己嘗試,原理應該是差不多的 qt編譯生成靜態庫1.本教程只針對在win32平台,使用vs開發工具 例子以vs2008為例 2.3.解壓qt源 到目標目錄,如 4.開啟 mkspecs 目錄,找到目標平台的資料夾,如 win32 msvc20...