vs2017 + QT5.10.0 + 5.7.0 支持xp

为了让qt在xp上运行,参照网上的博客以及自己的折腾,最终的环境配置是这样的
1. vs2017
2. 安装了两个qt版本下载的两个qt版本
3. 其中qt5.10.0安装msvc2015 32位的部分
4. 安装vs的qt插件 qt-vsaddin-msvc2017-2.1.2-beta-03.08.2017.vsix
5. 将qt5.7.0的安装路径添加到环境变量path中,方便后变使用windeployqt的命令,如我的路径是 D:\Qt5.7.0\5.7\msvc2015\bin
5. 安装qt插件后,在QT VS Tools中将默认的qt版本设置为5.10.0的32位版本
6. 新键Qt项目,调整属性如下:

vs2017 + QT5.10.0 + 5.7.0 支持xp_第1张图片
可能需要另外安装windows SDK 7.1(不清楚如何安装的话,可以先设置好属性,再重启vs,vs会指引你下载的,简直6)

vs2017 + QT5.10.0 + 5.7.0 支持xp_第2张图片

确保引用的是5.10.0的lib

vs2017 + QT5.10.0 + 5.7.0 支持xp_第3张图片

编译运行后,切换到生成的exe目录下,打开cmd,切到该目录下,执行windeployqt testqt.exe 将所需的dll整合到该目录下,将整个目录拷贝到winxp中,应该就可以运行了。

如果提示缺少dll,可以直接安装相应的vcredist,我测试时就安装了vcredist2013和2015


最后: 这样配置下来,编译的时候应该是用的qt5.10.0版本,但是windeployqt 拷贝的是5.7.0版本下的dll,虽然有点莫名奇妙,但确实是可行的,能在xp下运行。由于只写了个helloworld程序,到底之后具体使用起来会不会出现其他问题就不清楚了。
在这之前,我尝试过编译和windeployqt都是用同一个版本下的,结果是都会出现问题。 5.10.0下编译,winxp里运行会提示kernel32.dll api 找不到入口点;5.7.0下编译,winxp里运行,qwindows.dll会crash。 结果巧合之下发现组合起来就可以运行了,还有这种操作!

后续,发现问题了,styleSheet的图片资源用qt5.7的dll release后无法加载!!!!

你可能感兴趣的:(qt,vs2017,xp,qt5-7-0,qt5-10-0,编程经历)