QT 發布Debug和Release的文件夾中缺少*.dll文件


//QT 5.9.9 + MSVC2017

代碼寫完后,點擊Qt Creator左下角先選擇debug還是release然后點運行(綠色小三角),程序開啟后可以關閉。

在生成的文件夾debug/release中,點擊*.exe,報錯:缺少*.dll文件

1.系統環境變量未添加

D:\Tools\QT\qt5.9.9\5.9.9\msvc2017_64\bin

上面是我的路徑,添加到系統環境變量后即可。

再點擊*.exe,程序就可以運行了。


2.在上面的條件下,可能會發現雖然程序可以運行,但是編譯生成的文件夾中並沒有*.dll文件,

所以將文件夾放到其他電腦上時,程序還是運行不了,報錯:缺少*.dll文件

那是因為我們在構建時沒有添加自定義步驟,只用的安裝后默認的構建步驟

所以為了解決這個問題:

a.點擊左側 項目,出現構建設置界面

b.點擊 添加構建步驟

c.選擇 自定義進程步驟

d.填入命令:windeployqt

e.參數:%{buildDir}/%{CurrentBuild:Type}/%{CurrentProject:Name}.exe

f.工作目錄:%{buildDir}

g.左下角選擇debug或release,清除后重新編譯

h.編譯完成后運行

i.關閉運行的程序,打開編譯生成的文件夾,現在就有*.dll文件了

 

3.程序發布時還有另一個辦法,可以從工程的release目錄下找到可執行文件XXXX.exe,將其拷貝到一個空的文件夾,

此時的 XXXX.exe 是無法運行的,雙擊它系統會提示類似“找不到 xxx.dll”的錯誤信息。

然后在“開始”菜單的Qt目錄下中找到 Qt 命令行程序並打開,在命令行中先通過cd命令定位到可執行文件的文件夾,然后再執行 "windeployqt XXXX.exe" 命令。

windeployqt 是 Qt 提供的 Windows 平台打包工具,它能找到 XXXX.exe 可執行文件需要的所有動態鏈接庫,並將它們拷貝到當前文件夾中。

成功執行命令之后,可執行文件的文件夾內會增加很多文件夾和文件,這些都是 StuinfoFile.exe 執行所需要的;再次雙擊 XXXX.exe,如果它可以成功執行,表明打包操作是成功的。

我們可以直接將 該文件夾分享給他人,只要是 Windows 平台,都可以直接點擊運行 XXXX.exe 文件。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM