1. 程式人生 > >如何用Qt自動拷貝exe依賴的dll

如何用Qt自動拷貝exe依賴的dll

anti efault dcl ldr bbf round after 發布 mpc

QT生成的.exe文件不能運行的解決辦法

之前的數獨項目的GUI,當我的Qt項目生成exe時,由於缺少了相關的依賴dll文件,打開會一直報缺少依賴文件的錯:

技術分享

然後一開始我到安裝的Qt文件夾裏把這些有Qt生產的exe依賴的dll一個個拷貝了之後,還是會報缺依賴,後來發現有個qwindows.dll得放到新建的目錄platforms下,反正甚是麻煩。而且我自認為加全依賴後,本地能跑,到別人機器又是各種報錯,很煩惱。

實際上用QT自帶的windeployqt.exe工具運行需要處理的exe即可,命令如下:

C:\Qt\Qt5.9.1\5.9.1\msvc2017_64\bin\windeployqt.exe myexe

這個windeployqt.exe在qt安裝包的bin文件夾下,myexe為你vs生成的Qtexe,註意必須是Qt項目生成的exe.

示意圖如下:

技術分享

再看我們的文件夾,發現不再是孤零零的exe了,相關的依賴都弄過來了!大功告成,很方便!

技術分享

通過這種方式可以很方便地找到我們的Qt項目依賴的包,而且會很全,如果手動一個個添加可能會出現還是缺漏、在本地能跑,但是在別人的機器又GG的情況,因此使用Qt自帶的windeployqt生成exe來發布軟件,想必是極吼的。

如何用Qt自動拷貝exe依賴的dll