V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
utanbo
V2EX  ›  程序员

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

  •  
  •   utanbo · 2017-07-31 11:07:02 +08:00 · 3532 次点击
    这是一个创建于 2665 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  2017-07-31 15:10:51 +08:00
    额。。补充一下,开始没说清楚。
    几个程序基本已经开发完了,是在 qt5.6 下,最开始只要在 win 7 64 运行。现在发现客户实际环境比较复杂,有 win xp,有 win 10。
    我再去看看怎么搭建交叉编译
    16 条回复    2017-08-02 11:14:49 +08:00
    initialdp
        1
    initialdp  
       2017-07-31 11:38:00 +08:00
    如果要求 XP,则只能用 Qt4,Qt5 已经不考虑 XP 了。
    如果要求兼容 32 位和 64 位,则直接用 32 位即可,windows 64 位系统对 32 位程序兼容性极好。

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

    electron 不支持 Windows XP。
    initialdp
        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 上就没有。
    murmur
        10
    murmur  
       2017-07-31 20:54:27 +08:00
    一般都是 windows 有最强的功能、最快的更新包括最多的隐私窃取
    mac 保证简洁能用
    linux 让他自生自灭吧
    murmur
        11
    murmur  
       2017-07-31 20:56:19 +08:00
    另外比较好奇为啥选型的时候不用 vc6 这些古老一点的东西呢 毕竟微软自己的东西兼容会好点
    我真怀疑当时选 QT 可能以后要移植 mac 和 linux 我见过很多跨平台的程序都 qt 做的 当然功能也及其简单 不过能访问底层硬件是个优势
    panlatent
        12
    panlatent  
       2017-07-31 20:59:19 +08:00
    其实... 跨平台未必是一个好选择
    utanbo
        13
    utanbo  
    OP
       2017-08-01 09:01:52 +08:00
    @initialdp 非常感谢!之前用 5.6 开发的程序在 win 10 可以直接运行,今天试试切换成 qt4.8 的,看看有哪些兼容问题吧。
    nicevar
        14
    nicevar  
       2017-08-01 14:58:23 +08:00
    主要是兼容性问题,有些接口只针对部分平台,如果你没有做一些与本地系统结合紧密的功能问题不大,还有应用程序图标,mac 下你要弄个 icns 文件。
    打完包各个系统都需要测试一下,比如 win7 和 win10 依赖的 dll 有时候会有差异,打包前用 deployqt 检查一下可执行文件,也可能给你整一些没用的 dll,如果你在意大小自己裁剪一下,或者加壳压缩,mac 下面直接用 macdeployqt 打包,linux 下有点松散,可以打 deb 的包,ldd 看一下依赖
    utanbo
        15
    utanbo  
    OP
       2017-08-02 11:02:27 +08:00
    @initialdp 汇报一下最新进展,在 xp 虚拟机装了一个 qt-opensource-windows-x86-mingw492-5.6.2.exe ,qt creator 可以运行,试了一个 qt 的例子也可以运行,项目代码能编译通过。但是运行时还是提示无法定位输入点,怀疑是依赖的第三方库的问题,重新编一下第三方库试试。
    utanbo
        16
    utanbo  
    OP
       2017-08-02 11:14:49 +08:00
    其实我没有从 qt 源码编,就用的安装包默认安装。不知道这样行不行。后面还不行的话,再试试从 qt 源码编。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1667 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 16:57 · PVG 00:57 · LAX 08:57 · JFK 11:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.