基於QT的可執行文件打包成用戶可執行的exe文件


一、背景

在VS環境下開發的QT程序,在VS中可以正常的執行並且顯示QT界面,但是直接通過.exe來執行程序是執行不了的。

二、原因

經過查閱資料,當我們用VS直接運行時,不報錯是因為VS自己去找對應的dll(在你新建工程的時候,VS就幫你配置好了,如下圖1),但直接運行release或者debug目錄下的exe時,其只會在當前exe運行目錄以及window環境變量目錄中去找dll。當找不到時程序就會提示無法找到xxx.dll,如圖二。

圖1
圖1


圖2

三、解決方法

3.1 獲取你已經編譯好的可執行文件xxx.exe,把此可執行文件放到你新建的一個目錄下

例如:把xxx.exe文件放在此目錄下 D:\EXE_Unpack\UIBotSibSimulatorQT\

3.2 查找windeployqt.exe的路徑 (推薦你用Everything 這款軟件來查找,比較快)

如果你記得你安裝QT時的路徑,那么不需要查找了,如果不記得,有兩種方式可以查:

  1. 在電腦中查找,速度非常慢
  2. 使用Everything 查找,比較快,是一款非常不錯的軟件

我使用的是Everything 查找,如下圖所示:

但是我們可以看到windeployqt.exe有好幾個,但是用哪個呢?這就需要看你VS在配置QT的時候,用的是那種環境,那怎么看VS下QT的環境了?如下圖所示


點擊QT Options后會出現下面這個圖,如下圖所示:

我的VS2019配置的編譯器路徑是C:\Qt\Qt5.13.2\5.13.2\msvc2017_64\,所以我要用的windeployqt.exe路徑為C:\Qt\Qt5.13.2\5.13.2\msvc2017_64\bin\下的windeployqt.exe,
除了下面如何使用windeployqt xxx.exe 命令外,你還可以通過配置環境變量來使用(添加C:\Qt\Qt5.13.2\5.13.2\msvc2017_64\bin的環境變量,快捷鍵Win+R打開運行面板,輸入cmd,在Windows窗口中就可以通過使用windeployqt xxx.exe 命令來解決QT的動態庫依賴問題,通過配置環境變量的方式,在這里是沒有通過圖示表現出來的)

如果沒有報錯就代表成功了。成功后目錄如下所示:

你點擊xxx.exe后就可以直接運行了


免責聲明!

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



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