Windows下Qt程式打包成
阿新 • • 發佈:2018-12-30
打包目的:
QT寫的程式可執行檔案需要拷貝到其他沒有QT環境的windows裝置上執行。
第一步:構建
工具:QT+qmake+MinGW
我的QT程式是qmake寫的,在專案—>編輯構建配置選擇Release模式,然後構建執行,確認程式沒有錯誤。
第二步:依賴
工具:windeployqt
在Release構建目錄中,找出編譯好的可執行檔案,發現並不能執行,缺少依賴的庫檔案。
1、新建空資料夾
- 將可執行檔案拷貝到空資料夾中。
2、解決依賴的工具
- 網上介紹比較多的就是Dependency Walker工具,我沒有用這個工具,不細說
對於這個工具很多部落格都說到了,典型的黃色問號
- 使用QT自帶的windeployqt工具,它在qt的bin目錄下,所以需要把qt的bin目錄加入到環境變數中,這樣可以在命令列執行windeployqt命令。
3、雙擊可執行檔案,現在應該可以運行了吧,不幸的是
- 其中一個原因是:動態連結庫的版本問題,現在需要手動去QT執行環境的bin目錄下將那些無法定位程式輸入點
但是,依賴問題並沒有全部解決。
4、在開發機能執行並不代表在其他裸機上能跑
- 把此刻我們配置的專案資料夾拷貝到其他裸機(無QT等環境)上,雙擊.exe,會發現缺少某些.dll,缺什麼補什麼,去拷貝就行了,直到能執行。
- 現在才算解決了所有依賴問題(反正這個過程我用了兩天)。
第三步:打包
到這一步之後,打包應該沒什麼問題了,不管什麼工具基本上是傻瓜式步驟,都做的很好。
- 我調研的打包工具有:Enigma Virtual Box、FilePacker、MoleBox Pro等,最終根據需求選擇了FilePacker。
- FilePacker能把可執行檔案和依賴的動態庫等打包成一個可執行檔案。
- 隨便建立工程名,下一步
- 源目錄選擇第二步中新增依賴的檔案目錄
- 選擇可執行檔案
- 選擇程序結束後刪除解壓檔案,壓縮等級調到最高。
- 臨時解壓路徑選擇你想要檔案解壓的地方,圖示是有要求的,自己下個編輯軟體做一個。
- 然後下一步,就可以了,最後生成可執行的.exe,可以弄到其他裝置上試一試。