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文件。