桌面程序适应不同的操作系统,主要考虑哪些方面?

2017-07-31 11:07:02 +08:00
 utanbo

Qt 的图形界面程序,开发环境是 win7 64 位,现在要求在 win xp、win 10 都能运行( 32、64 )。都要考虑些什么问题?从哪开始入手?没做过,没思路,有经验的同学给些意见。。

3449 次点击
所在节点    程序员
16 条回复
initialdp
2017-07-31 11:38:00 +08:00
如果要求 XP,则只能用 Qt4,Qt5 已经不考虑 XP 了。
如果要求兼容 32 位和 64 位,则直接用 32 位即可,windows 64 位系统对 32 位程序兼容性极好。

综合以上分析,建议您采用 Qt4.8+VC2008 ( 32bit )即可。
utanbo
2017-07-31 13:44:06 +08:00
@initialdp 印象中 qml 是不是 4.8 以后引入的?有一个程序已经用 qml 开发完了。。还有机会适应 xp 吗?现在的几个程序都是在 qt5.6 下开发的,重新换成 qt4.8 版本,这会不会有很多坑?
brightguo
2017-07-31 14:22:23 +08:00
反对 1 楼,Qt5 还是可以发布到 winXP 的哈~ 参见 http://brightguo.com/how-to-release-qt-app-can-run-on-xp/
qml 没用过不清楚~
XiaoFaye
2017-07-31 14:24:43 +08:00
直接用 Chromium+HTML5 做界面吧。
linus3389
2017-07-31 14:48:34 +08:00
如果不需要多炫酷的 GUI
上 java 也不错
zjsxwc
2017-07-31 14:49:07 +08:00
额,这里不同系统要求的是微软旗下的不同 windows 版本。
zjsxwc
2017-07-31 14:50:05 +08:00
那么只要兼容最老的的 windows 版本,微软自己就能兼容的很好
DoraJDJ
2017-07-31 15:14:11 +08:00
@XiaoFaye 现在要求在 **win xp**、win 10 都能运行( 32、64 )。

electron 不支持 Windows XP。
initialdp
2017-07-31 18:08:26 +08:00
@utanbo Qt4.8 有 QML,不过是初级版本,与 Qt5 的 QML 差别很大,我不确定 Qt5 的 QML 能移植回 Qt4.8,而且 Qt4.8 的 QML 基本就是个残废品吧,不仅 bug 多,而且不稳定。
楼上一位 V 友提到能将 Qt5 运行在 xp 上,我对此也很怀疑。那篇文档中只是一个最简单的 GUI 程序(仅仅涉及 QtCore 和 QtWidget 而已),实际上其他 Qt 组件,例如 QtNetwork,QtWebKit 等,用到的一些系统 API,可能 XP 上就没有。
murmur
2017-07-31 20:54:27 +08:00
一般都是 windows 有最强的功能、最快的更新包括最多的隐私窃取
mac 保证简洁能用
linux 让他自生自灭吧
murmur
2017-07-31 20:56:19 +08:00
另外比较好奇为啥选型的时候不用 vc6 这些古老一点的东西呢 毕竟微软自己的东西兼容会好点
我真怀疑当时选 QT 可能以后要移植 mac 和 linux 我见过很多跨平台的程序都 qt 做的 当然功能也及其简单 不过能访问底层硬件是个优势
panlatent
2017-07-31 20:59:19 +08:00
其实... 跨平台未必是一个好选择
utanbo
2017-08-01 09:01:52 +08:00
@initialdp 非常感谢!之前用 5.6 开发的程序在 win 10 可以直接运行,今天试试切换成 qt4.8 的,看看有哪些兼容问题吧。
nicevar
2017-08-01 14:58:23 +08:00
主要是兼容性问题,有些接口只针对部分平台,如果你没有做一些与本地系统结合紧密的功能问题不大,还有应用程序图标,mac 下你要弄个 icns 文件。
打完包各个系统都需要测试一下,比如 win7 和 win10 依赖的 dll 有时候会有差异,打包前用 deployqt 检查一下可执行文件,也可能给你整一些没用的 dll,如果你在意大小自己裁剪一下,或者加壳压缩,mac 下面直接用 macdeployqt 打包,linux 下有点松散,可以打 deb 的包,ldd 看一下依赖
utanbo
2017-08-02 11:02:27 +08:00
@initialdp 汇报一下最新进展,在 xp 虚拟机装了一个 qt-opensource-windows-x86-mingw492-5.6.2.exe ,qt creator 可以运行,试了一个 qt 的例子也可以运行,项目代码能编译通过。但是运行时还是提示无法定位输入点,怀疑是依赖的第三方库的问题,重新编一下第三方库试试。
utanbo
2017-08-02 11:14:49 +08:00
其实我没有从 qt 源码编,就用的安装包默认安装。不知道这样行不行。后面还不行的话,再试试从 qt 源码编。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/379183

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX