admin管理员组

文章数量:1530845

0.准备

xp版本:itellyou网站下的zh-hans_windows_xp_home_with_service_pack_3_x86_cd_x14-92408.iso

虚拟机:vmware14

1.打包

在【vs2015开发人员命令提示cmd】里用【windeployqt】命令,然后再把qt msvc目录下的bin目录下的dll拷贝过去,还有qml整个拷贝过去(貌似别人是拷qml下面的文件夹),然后把xxd.dll和xx.pdb文件删了,如下图(3d和web相关我没用到,删了,其他没用的还没删),参照网上的qml打包好像还是有遗漏,程序跑不起来。

(而且发现qt cmd和vs cmd打包出来的D3Dcompiler_47.dll居然不一样,不过在我这个程序里貌似没影响)

2.初次运行

打包好程序后,放到xp虚拟机里报【不是有效的win32程序】。

运行打包出来的【vc_redist.x86.exe】后依旧报错。

3.探索

经过一番搜索,终于找到原因,msvc版本的要在pro里配置下(见参考)。

设置好pro后,写了个简单的widgets程序打包过去,能运行。但是之前的qml程序依旧没界面,但是托盘的图标一直在,debug重定向到文件,发现打印了一堆【QWindowsGLContext::makeCurrent: SetPixelFormat() failed((无效标志。)】,感觉应该和opengl相关。

又经过一番搜索,原来setAttribute设置Qt::AA_UseSoftwareOpenGL参数就能正常绘制了。果然,这下我虚拟机的xp终于能出界面了,反正opengl这个我也搞不懂,看了参考里qt官方那个文档我也不太明白,不过现在程序能用了。

4.后续

事情当然没有那么简单,在别人mac的虚拟机xp还是不能运行,报了一个莫名其妙的错误,这我就。。。

5.参考

qml打包【会有遗漏】:https://blog.csdn/weixin_43810973/article/details/86512748

Qt xp不是有效win32:https://blog.csdn/xzpblog/article/details/76640017

qt  xp opengl:https://wwwblogs/findumars/p/5518054.html

qt windows:https://doc-snapshots.qt.io/qt5-5.9/windows-requirements.html?tdsourcetag=s_pcqq_aiomsg

本文标签: 程序系统msvcXPqml