这是一个创建于 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 的也能跑。