V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
utanbo
V2EX  ›  程序员

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

  •  
  •   utanbo · Jul 31, 2017 · 3960 views
    This topic created in 3193 days ago, the information mentioned may be changed or developed.

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

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

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

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