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编译,不需要依赖任何其他的库,体验较好。