1. 程式人生 > >QT5.6.1使用靜態編譯

QT5.6.1使用靜態編譯

   Qt專案編譯一般使用的是動態編譯,這使得一個即使很簡單的專案也會需要一些qt的依賴庫,使得釋出版本的檔案比較多,採用靜態編譯就不會有這些麻煩,不需要依賴庫,只需要.exe檔案就可以執行,簡單方便。下面我就把Qt的靜態編譯的步驟詳細的做一個介紹

1.安裝qt5.6.1 qt-opensource-windows-x86-mingw492-5.6.1.exe 2.安裝安裝Perl, 下載地址:https://www.activestate.com/activeperl/downloads 安裝時選擇自動新增環境變數,如果沒有勾選自動新增環境變數,需要手動perl的bin資料夾的路徑新增到環境變數中。 3. 安裝Python,Windows x86 executable installer 下載地址:

https://www.python.org/downloads/,方法同樣,需要將新增路徑到環境變數中去。 4. 開啟Qt 5.6 for Desktop (MinGW 4.9.2 32 bit) 5. 輸入以下命令檢查gcc編譯器配置是否正確 gcc -v 6. 輸入以下命令檢查perl直譯器配置是否正確 perl -v 7.輸入以下命令檢查python配置是否正確 python 按ctrl+z回車,退出python 8.在D:\ProgramFiles\Qt\Qt5.6\5.6新建一個資料夾mingw492_32_static 切換到Qt的原始碼目錄 cd D:\ProgramFiles\Qt\Qt5.6\5.6\Src 執行命令: configure.bat -confirm-license -opensource -platform win32-g++ -debug-and-release -static -prefix “D:\ProgramFiles\Qt\Qt5.6\5.6\mingw492_32_static” -qt-sqlite -qt-zlib -qt-libjpeg -qt-libpng -qt-xcb -qt-xkbcommon -qt-freetype -qt-pcre -qt-harfbuzz -opengl desktop -no-qml-debug -no-angle -nomake tests -nomake examples -skip qtwebengine -skip qtwebview -skip qt3d 注:這裡配置的時候,跳過了qtwebengine、qtwebview、qt3d,如果需要這些模組可以去掉skip 編譯大概需要三個小時左右 mingw32-make -j2 注:本處為2個執行緒編譯,電腦好的可以開更多的執行緒,編譯速度也更快 安裝(需要30分鐘左右,硬碟好的話會快點) mingw32-make install 9.新增加靜態編譯 開啟Qt Creator -> 工具 -> 選項 -> 構建和執行 -> Qt Versions 新增新的構建器。 10.關於QML的靜態釋出的注意事項 其實靜態釋出Quick/QML程式,大體上和靜態釋出Widgets差不多,只不過QML部分的一些庫檔案,是無法靜態編譯的,畢竟都稱不上C++。 注意,本文中用到的套件是5.6.1靜態編譯,MinGW版本 (1)整理QML檔案 我們依賴到的QML檔案一般都存放在mingw492_32_static/qml目錄下: 在這裡插入圖片描述
在所在的專案下建立qml資料夾,將所需要的檔案複製到qml中,並且將其中的.a靜態庫檔案刪除,畢竟不需要庫檔案,然後將qml資料夾新增到資原始檔中; 新增資原始檔的步驟: 當然這裡我們不能手動一個個加,太麻煩了,右鍵qrc檔案,選擇 Add Existing Directory ,選擇qml目錄,這樣整個qml目錄已經裡面所有資料夾,都被遞迴新增到qrc裡面了。 在這裡插入圖片描述 回到main.cpp,再新增一行 engine.addImportPath( “:/qml/” ); 選擇release編譯,得到exe檔案 這樣得到的.exe 檔案就不需要任何依賴庫就可以執行了,是不是釋出的版本檔案比動態編譯的簡單了很多;這樣靜態編譯就完成了。這此之前的靜態庫編譯可能會出現很多的問題,這還需要大家自己解決其中的問題,在此預祝大家都可以同過本次編譯。