Qt 的图形界面程序,开发环境是 win7 64 位,现在要求在 win xp、win 10 都能运行( 32、64 )。都要考虑些什么问题?从哪开始入手?没做过,没思路,有经验的同学给些意见。。
1
initialdp 2017-07-31 11:38:00 +08:00
如果要求 XP,则只能用 Qt4,Qt5 已经不考虑 XP 了。
如果要求兼容 32 位和 64 位,则直接用 32 位即可,windows 64 位系统对 32 位程序兼容性极好。 综合以上分析,建议您采用 Qt4.8+VC2008 ( 32bit )即可。 |
2
utanbo OP @initialdp 印象中 qml 是不是 4.8 以后引入的?有一个程序已经用 qml 开发完了。。还有机会适应 xp 吗?现在的几个程序都是在 qt5.6 下开发的,重新换成 qt4.8 版本,这会不会有很多坑?
|
3
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 没用过不清楚~ |
4
XiaoFaye 2017-07-31 14:24:43 +08:00
直接用 Chromium+HTML5 做界面吧。
|
5
linus3389 2017-07-31 14:48:34 +08:00
如果不需要多炫酷的 GUI
上 java 也不错 |
6
zjsxwc 2017-07-31 14:49:07 +08:00
额,这里不同系统要求的是微软旗下的不同 windows 版本。
|
7
zjsxwc 2017-07-31 14:50:05 +08:00
那么只要兼容最老的的 windows 版本,微软自己就能兼容的很好
|
8
DoraJDJ 2017-07-31 15:14:11 +08:00
|
9
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 上就没有。 |
10
murmur 2017-07-31 20:54:27 +08:00
一般都是 windows 有最强的功能、最快的更新包括最多的隐私窃取
mac 保证简洁能用 linux 让他自生自灭吧 |
11
murmur 2017-07-31 20:56:19 +08:00
另外比较好奇为啥选型的时候不用 vc6 这些古老一点的东西呢 毕竟微软自己的东西兼容会好点
我真怀疑当时选 QT 可能以后要移植 mac 和 linux 我见过很多跨平台的程序都 qt 做的 当然功能也及其简单 不过能访问底层硬件是个优势 |
12
panlatent 2017-07-31 20:59:19 +08:00
其实... 跨平台未必是一个好选择
|
13
utanbo OP @initialdp 非常感谢!之前用 5.6 开发的程序在 win 10 可以直接运行,今天试试切换成 qt4.8 的,看看有哪些兼容问题吧。
|
14
nicevar 2017-08-01 14:58:23 +08:00
主要是兼容性问题,有些接口只针对部分平台,如果你没有做一些与本地系统结合紧密的功能问题不大,还有应用程序图标,mac 下你要弄个 icns 文件。
打完包各个系统都需要测试一下,比如 win7 和 win10 依赖的 dll 有时候会有差异,打包前用 deployqt 检查一下可执行文件,也可能给你整一些没用的 dll,如果你在意大小自己裁剪一下,或者加壳压缩,mac 下面直接用 macdeployqt 打包,linux 下有点松散,可以打 deb 的包,ldd 看一下依赖 |
15
utanbo OP @initialdp 汇报一下最新进展,在 xp 虚拟机装了一个 qt-opensource-windows-x86-mingw492-5.6.2.exe ,qt creator 可以运行,试了一个 qt 的例子也可以运行,项目代码能编译通过。但是运行时还是提示无法定位输入点,怀疑是依赖的第三方库的问题,重新编一下第三方库试试。
|
16
utanbo OP 其实我没有从 qt 源码编,就用的安装包默认安装。不知道这样行不行。后面还不行的话,再试试从 qt 源码编。
|