1. Qt库的编译
Qt官方对XP系统的支持止步于5.7.0版本,从5.7.1开始不再支持XP。但从官网上下载的5.7.0版本的安装包是不支持XP的,需要自己下载源码进行编译,需要注意以下两点:
① configure时增加配置项:-target xp。
② 需要编译动态链接版本时去掉-static的选项。
2. 关于静态链接不可行的说明
经过实际测试,使用静态链接的Qt库编译的应用,在XP上运行时会由于系统自带的某些库版本较旧或缺失导致无法运行:
msvc版:
即便补上这个dll,由于vc运行库的版本不对,依旧无法运行:
由于无法更新xp系统上的C:\Windows\System32\msvcrt.dll,导致静态编译的版本无法运行。
mingw32版:
由于DirectX库太旧导致无法运行,尝试更新、修复DirectX均无效。
结论:基于Qt 5.7.0版本的Qt库静态编译生成的程序无法在xp上运行,建议动态编译。
3. 关于msvc版的应用安装vc运行库的说明
如果使用msvc版的Qt库编译,需要在部署前在xp上安装vc的运行库,例如基于msvc2015编译,需要安装vcredist_msvc2015_x86.exe,这个文件在Qt的安装目录中就可以找到。
使用mingw32编译,不需要依赖任何其他的库,体验较好。
Qt5可以使用msvc编译器和mingw编译器,而msvc的编译器从2015开始就对xp的支持变差,就算通过各种编译配置命令设置,能xp下运行,但是会很可能发生一些奇奇怪怪的bug。而mingw编译器没有这个问题,同一个版本可以在xp win7 win10各个系统使用,而无需其他配置。另外,Qt5目前有两个长期支持版本(Long Term Support)Qt5.6和Qt5.9,Qt5.6可以在win7及以上系统开发,另外支持xp-32bit的部署和vista的部署(参考:http://doc.qt.io/qt-5.6/supported-platforms.html)而Qt5.9只支持win7以上的系统开发和部署。
所以如果想使用Qt5的新功能,又想开发出的软件能在xp系统上运行,可以选择Qt5.6的mingw-32bit版本进行开发。