标签:
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,链接:
接下来就是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官网的资料