dychenyi
V2EX  ›  问与答

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

  •  
  •   dychenyi · Dec 26, 2017 · 2296 views
    This topic created in 3082 days ago, the information mentioned may be changed or developed.
    不升级客户机的核心库,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 需要自带,有些必须用系统的, 那么怎么样去选择呢?
    Supplement 1  ·  Apr 25, 2018
    防止以后来人入坑。
    在这 append 一下:
    有个现成的软件做这事。https://github.com/probonopd/linuxdeployqt
    一条命令所有涉及到的库全部打包放在一个文件夹。
    测试过,在 centos 打包的 qt 程序放到 ubuntu 的也能跑。
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5822 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 02:52 · PVG 10:52 · LAX 19:52 · JFK 22:52
    ♥ Do have faith in what you're doing.