V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
dychenyi
V2EX  ›  问与答

Linux 的 Qt 程序怎么发布? (不改动客户机的核心库)

  •  
  •   dychenyi · 2017-12-26 14:57:30 +08:00 · 1640 次点击
    这是一个创建于 2506 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不升级客户机的核心库,glibc libz gcc stdc++库啥的, 完全打包做得到的吧?我看到有些商业软件确实做到了,而且是自带了很多动态链接库 so 发布的。
    我不是太清楚,以下是我试验:
    1 ) 我开发机上 ldd 得到的所有的 so 全部拷贝到客户机。 setenv LD_LIBRARY_PATH 到当前目录。 失败, 说找不到一些 GLIBC 的版本。
    2 ) 在 1 )基础上,我另外在客户机上编译了一套 glibc glibz 并放到执行目录, 还是失败,报 __vdso_time, dlopen 之类的错误。
    那么正规的流程是什么样的? 有点搞不懂了? 在客户机静态编译一套 Qt 应该可以 ? 这我还没测试。但是客户机只有 gcc 4.4, 根本不支持 c++11,怎么做到编译最新的 Qt ? 还是得升级核心库。 思维有点乱,像商业软件那样动态链接发布,怎么做到的? 感觉是有些 so 需要自带,有些必须用系统的, 那么怎么样去选择呢?
    第 1 条附言  ·  2018-04-25 09:32:54 +08:00
    防止以后来人入坑。
    在这 append 一下:
    有个现成的软件做这事。https://github.com/probonopd/linuxdeployqt
    一条命令所有涉及到的库全部打包放在一个文件夹。
    测试过,在 centos 打包的 qt 程序放到 ubuntu 的也能跑。
    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3753 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 10:28 · PVG 18:28 · LAX 02:28 · JFK 05:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.