介紹
該項目是在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