VS2017+Qt5.9.3 程序打包發佈

介紹

該項目是在VS2017+qt5.9.3的環境下實現的,因需要轉移到其他電腦運行,故選擇打包軟件。

步驟如下

一、提取Qt的動態鏈接庫

1、打開Qt自帶的 windeployqt工具,如下(因爲我VS用的編譯器是MSVC2017,所以選擇它)

2、編譯前需要將所發佈的exe文件放到一個單獨的文件夾,比如我是放到F盤根目錄下的Software文件夾中

3、使用命令cd 轉到exe文件的路徑

 

4.使用 windeployqt 工具命令:“windeployqt 文件名.exe”,回車鍵

5、檢查Software文件夾中的內容

Qt動態鏈接庫提取成功。但只是這樣做不一定在其他電腦上運行,所以有接下來的步驟

二、檢查缺少的DLL文件

1、打開vs2017目錄下的“適用於vs2017的x64 本機工具命令提示符”

2、進入源工程所在目錄(這次進入的目錄爲vs創建工程生成exe的目錄);

使用命令:dumpbin /IMPORTS 文件名.exe>output.txt

比如我這裏是將WeatherDisplay整個工程放到了桌面,所以路徑也是桌面
運行以上命令之後,你會在工程路徑下的release文件夾中看到output.txt文件

3、打開output.txt文件,查詢除了Qt部分的其他dll。因爲第一步已經將Qt的鏈接庫提取出來了,不需要再次提取

4、 比如上面顯示的是VCRUNTIME140.dll,然後我使用eyerything軟件尋找VCRUNTIME140.dll文件

根據顯示的位置,尋找VCRUNTIME140.dll,然後將它複製到所要打包的文件夾中,和之前的exe文件,Qt鏈接庫放在一起
我這裏選擇的是在C:\Windows\System32中尋找DLL文件

三、最終的打包文件

 

疑難

項目若在Release模式和Debug模式下能夠正常運行,但是單獨點擊項目生成目錄下的release文件夾或者debug文件夾下的exe文件,出現以下錯誤,說明是缺少DLL文件,可以利用Depends.exe查詢所缺DLL。

參考博文:https://www.cnblogs.com/doudou-1102/p/10266010.html
                  https://blog.csdn.net/su_unknown_world/article/details/82317637

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章