Windows下QtQML應用程序發佈失敗(無法打開&界面不顯示)的終極解決方案

首先,下圖爲僅使用了QtQuick中Controls&Particle&GraphicalEffects&Multimedia等控件後發佈得到的應用程序目錄結構:
在這裏插入圖片描述
一般而言,使用qt官方介紹的途徑(即在deployqt加上-qmldir及參數)目前仍有可能存在應用程序界面不顯示或者雙擊完全無響應的現象,這是由於自帶的dll配置程序不能完全拷貝程序需要的所有擴展文件到發佈目錄下。爲此:

  1. 我們先將release編譯得到的應用程序文件置於【Qt安裝目錄】\Qt5.12.4\5.12.4\mingw73_64(此處以發佈使用mingW7.3_64位編譯出的文件爲例,實際根據自己所使用的編譯器版本來進行調整)目錄下的bin文件夾中,測試程序能否正常運行。如果能運行——>2 不能——>更換一下編譯環境再在QtCreator中進行測試,如果可行則進入第二步,仍然失敗的話考慮相對路徑等文件引用問題。
  2. 將bin文件夾下的所有.dll文件(後綴有d的除外,如Qt5Sqld.dll,這些是debug使用的配置文件)拷貝到發佈目錄下,將qml文件夾下你使用的組件文件夾拷貝過去(根據是否import來判斷),刪除其中的debug dll文件。拷貝plugin下的文件夾(一般簡單程序拷貝imageformates和platform即可,根據你是否使用了音頻文件&sqlite支持等等,拷貝對應名稱的文件夾)放置到發佈目錄,此時點擊運行,如果已經正常,那麼可以再精簡掉xxxxd.dll文件和qml文件夾中未使用的(比如controls2的各種style組件)隨後打包發佈即可。
  3. 若不能運行,則拷貝完整的plugin&qml文件夾內容到發佈目錄,如果想要精簡則進行逐個文件夾的刪除測試,否則直接刪除debug dll文件打包發佈即可
  4. 如果是基於mingw的程序,可以先試試把windeployqt打包的Qt5Core.dll文件替換爲MinGW的bin目錄裏的同名文件。
發佈了19 篇原創文章 · 獲贊 7 · 訪問量 5155
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章