Qt5 程序發佈windowsXP一些問題
2014-11-21 19:52 1622人閱讀 評論(1) 收藏 舉報
分類:
編程(2)
版權聲明:本文爲博主原創文章,未經博主允許不得轉載。
開發環境win7 + vs2013 + Qt5
目標機器:xp,沒有安裝vs和Qt
首先將EXE文件即其依賴dll放入同一文件夾,拷貝到目標機器上,雙擊運行,出現錯誤1
1、“exe不是有效的Win32程序,如圖”
Vs2013支持xp環境的程序,不過得設置一下。方法如下:
在vs2013中,在工程名上點擊右鍵-》屬性-》配置屬性-》常規-》平臺工具集,選擇xp項,如下圖
系統差異問題解決,第二個就是vs編譯環境問題。
2、“沒有找到MSVCR120.dll,因此這個應用程序未能啓動,重新安裝應用程序可能會修復此問題”
原因在於缺少vs2013程序環境,一種方法是根據提示卻上什麼dll文件,就下載並將其拷貝到“C:\Windows\System32”中,第二種方法是到微軟網站下載Visual C++ RedistributablePackages for Visual Studio 2013,鏈接:http://www.microsoft.com/zh-cn/download/details.aspx?id=40784
接下來就是Qt5的環境問題,此問題要複雜一點兒,之前也沒接觸,故花的時間略多。
3、Qt5,“this application failed tostart because it could not find or load the Qt platform plugin “windows””
出現此問題可能原因有兩個:
第一是EXE同文件夾中缺少libEGL.dll或libGLESv2.dll(debug版本程序使用libGLESv2d.dll),將這兩個文件考入文件夾
第二個Qt在windows下運行必須要qwindows.dll文件,此文件在“Qt\Qt5.3.2\5.3\msvc2013\plugins\platforms”路徑下,但不能類似前面處理方式一樣將qwindows.dll文件拷貝到EXE目錄,這和Qt對plugins的加載方式有關。解決步驟如下:
a) 在main函數開頭加入下面語句
QApplication::addLibraryPath("./plugins");
b) 在EXE目錄中新建platforms文件夾,將qwindows.dll文件拷入
當然這裏因爲我只用到了qwindows.dll,如果還用到其他的plugins也得一起拷進去。
這個問題可以採用qt.conf解決,但我沒有看過,可以參考Qt官網的資料
http://qt-project.org/doc/qt-5/windows-deployment.html