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列表: