Qt5打包后缺少dll,啟動失敗問題


Qt5使用Qt自帶的windeployqt打包程序教程很多,其過程也很簡單,但是大部分人在打包過程中會出現提示缺少dll,或者錯誤0xXXXX等問題,網上各種說法,我測試過基本都不怎么正確,這里寫一下我的解決方法。

經典錯誤

  • 缺少dll
  • 無法啟動程序報錯

解決方法

1. windeployqt版本要和Qt生成的exe版本一致。

我這里的是MINGW_32bit版本,如下圖:

所以也要進入第一個控制台[Qt5.9.9 (MINGW 5.3.0-32bit)]環境下用windeployqt打包!

注意這里不要添加Qt\Qt5.9.9\5.9.9\mingw53_32\bin的全局變量在CMD界面下運行windeployqt,原因有兩個:1.各種全局變量下不同平台版本的windeployqt變量路徑會混亂,使用windeployqt版本可能不對應,而且就算你只添加一個對應的全局變量在CMD界面下運行windeployqt也可能會缺少dll。2. 添加全局變量下,即使缺少Qt的dll也能運行,會讓你以為dll已經打全了,但是實際上你去掉相應的全局環境變量或者在其他電腦上一樣報錯。

2. Qt組件不全。

如果你嚴格按照1方法執行,發現還是報錯缺少dll,那么極有可能是你的組件不全,這里以windows下為例子,正確的打包一般不會出現警告,如下圖:

我之前失敗時發現每次打包過程都會警告找不到VS的目錄,我當時就很疑惑我明明是MINGW32bit下編譯的exe為啥打包需要找Qt的VS組件文件,於是我嘗試把Qt的windows下編譯組件全裝上,如下圖:

再次運行1方法執行打包成功!

最后

我提供的方法也只是給大家一個參考,很可能你的問題不在其中,出現了問題國內找不到就去國外找吧


免責聲明!

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



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