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
版权声明:本文标题:Qt5.7.0 msvc 32bit 的QML程序部署到xp系统 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1726466751a1071824.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论