在windows平台使用Qt5.8mingw版寫出的程序,在Qt中運行正常,而以release的形式編譯並且補充完必要的dll文件后,在其他電腦上運行出現了以下問題:
經過查閱許多資料和親身實驗,終於解決了這一問題,簡單的說,需要在含exe程序的文件夾中新建platforms文件夾,並且在里面添加qwindows.dll文件,qwindows.dll文件的具體路徑是Qt\Qt5.8.0\5.8\mingw53_32\plugins\platforms,Qt文件夾所在的具體盤符與安裝的路徑有關,默認在C盤根目錄,含exe程序的文件夾如下。
經過親手實驗,此種方案運行正常且沒有多余的文件,體積較小。
如果程序仍不能正常運行,如果程序中有其他資源,根據具體資源加入Qt\Qt5.8.0\5.8\mingw53_32\plugins中相應的文件夾,去掉其中不需要的dll,比如如果程序中有圖片資源且不能運行,則在exe目錄(與platforms同級目錄)下新建名為imageformats加入相應的dll文件。。
不能解決可參考以下備用方案:
- 在platforms放入qminimal.dll和qwindows.dll兩個文件,可以根據需要在Qt\Qt5.8.0\5.8\mingw53_32\plugins中拷貝相應的文件夾,去掉其中不需要的dll。
- 在platforms放入qminimal.dll、qminimald.dll、qwindows.dll、qwindowsd.dll文件。
- 在exe文件夾中放入libEGL.dll文件,在platforms放入qwindows.dll文件,根據具體資源加入Qt\Qt5.8.0\5.8\mingw53_32\plugins中的文件夾,去掉其中不需要的dll。
參考文獻
[1]cupidove.(轉)Qt5.0.2 + MinGW編譯出來的程序發布.http://blog.csdn.net/cupidove/article/details/9343673
[2]praveen_kumar,mustaphamni.https://forum.qt.io/topic/24553/this-application-has-requested-the-runtime-to-terminate-it-in-an-unusual-way/14