Qt5 中發佈程序遇到could not find or load the Qt platform plugin "windows"

1.首先要搞清楚動態鏈接庫還是靜態鏈接

本文只涉及動態鏈接庫,就是編譯出來的exe文件加上Qt 的必要dll文件。

一般跟別人一樣的操作,直接雙擊 XX.exe,提示缺少什麼dll,就去Qt的安裝目錄下的bin文件夾裏去找。我找的目錄是D:\Qt\Qt5.2.0\5.2.0\msvc2010\bin

 

2. This application failed to start because it could not find or load the Qt platform plugin "windows"

 

複製所需的dll後,提示了這個錯誤。這個錯誤的解決方案是:

1.可能缺少複製 libEGL.dll

2.需要把D:\Qt\Qt5.2.0\5.2.0\msvc2010\plugins\platforms\qwindows.dll,帶紅色的複製到你的exe執行文件目錄。就是platforms文件夾,裏面一個qwindows.dll


3.複製你exe需要的qt插件


首先要在程序中的 main函數中加上 QApplication::addLibraryPath("./plugins");

我寫的Qt程序只用到了image插件,需要把 D:\Qt\Qt5.2.0\5.2.0\msvc2010\plugins\imageformats,帶紅色的文件夾包括imageformats裏的大部分dll複製到exe執行文件目錄就OK了,如果用到數據庫插件等,也要複製。

 

4.使用Process Explorer 查看exe使用的dll

發佈我的程序TextureUnpacker時,Process Explorer幫助非常大,我們用Qt Creator  運行我們將要發佈的程序時,就可以用 Process Explorer 查看exe使用的dll了,除了C:windows\system32的中的像下圖紅框中的就要關注了,程序運行失敗很可能就是少了對應的dll文件。

 

5.最後是我用qt 5.2寫的一個簡單程序所需要的dll列表:

發佈了11 篇原創文章 · 獲贊 51 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章