標籤:windows qt c++
問題:在使用Qt5.3.2編寫程式並release,檔案夾中已經添加了必要的dll,但在其他機子上運行程式失敗,出現了下面的情況:
解決方案一:在C:\Qt\Qt5.3.2\5.3中進入mingw482_32檔案夾,將plugins\platforms整個目錄複寫exe執行檔案所在的檔案夾目錄中,程式即可運行。
以下是網上幾個其他方法的總結:
解決方案二:複製你exe需要的qt外掛程式,首先要在來源程式中的main函數中加上QApplication::addLibraryPath(“./plugins”);
把C:\Qt\Qt5.3.2\5.3\mingw482_32\plugins\裡的dll複製到exe執行檔案目錄就OK了。
比如程式在自己機子上運行正常,拷貝到其他電腦後一些圖片無法顯示可嘗試這種方法。這時可能的解決方案是,進入exe檔案所在目錄底下建立檔案夾imageformats, 然後去QT的plugins下imageformats檔案夾下拷貝相應的圖片編碼的dll和lib。例如在程式中用到的圖片是jpg格式的,就複製qjpeg.dll 和qjpeg.lib過去。
解決方案三:使用Process Explorer查看程式所使用的dll
Process Explorer是一個很有用的工具。由Sysinternals開發的Windows系統和應用程式監視工具,目前已併入微軟旗下。不僅結合了Filemon(檔案監視器)和Regmon(註冊表監視器)兩個工具的功能,還增加了多項重要的增強功能。包括穩定性和效能改進、強大的過濾選項、修正的進程樹對話方塊(增加了進程存活時間圖表)、可根據點擊位置變換的右擊菜單過濾條目、整合帶原始碼儲存的堆疊追蹤對話方塊、更快的堆疊追蹤、可在 64位 Windows 上載入 32位 記錄檔的能力、監視映像(dll和核心模式驅動程式)載入、系統引導時記錄所有操作等。(來自百度百科的解釋)
既然可以監視dll,那麼在發布程式前,可以用Qt Creator運行將要發布的程式,在Process Explorer中查看exe使用的dll,一般來說,程式運行失敗很可能就是少了對應的dll檔案。
這是我用qt發布一個簡單程式所需要的dll列表:
問題解決:it could not find or load the Qt platform plugin "windows"