libm.so.6: version "GLIBC_2.29" not found
libc.so.6: version "GLIBC_2.27" not found
libm.so.6: version "GLIBC_2.29" not found
libc.do.6: version "GLIBC_2.28" not found
他在Ubuntu 16上。我已经在我的开发机器上安装了glibc 2.31。所以我认为这个lib在他的Ubuntu 16上不见了?我可以把它添加到软件包中吗?这样Ubuntu16用户就可以获得所需的库了?或者我必须用类似兼容性标志的东西来编译它?
这将不起作用。通常,您需要在计划支持的操作系统的最低版本上开发二进制文件。
这样做的选项是
- 在VM中构建
- 在docker容器中构建
- 内置
chroot
- 构建一个Linux到旧版Linux的交叉编译器
我已经在我的开发机器上安装了glibc 2.31。所以我认为这个lib在他的Ubuntu 16上不见了?
是的:Ubuntu 16.04随GLIBC-2.23一起提供,在不升级整个发行版的情况下安装新版本是不可能的(嗯,这是可能的,但完全不重要(。
我可以把它添加到软件包中吗?这样Ubuntu 16用户就可以获得所需的库了吗?
否。要添加的程序包将影响目标系统上的每个(动态链接(程序,并(极有可能(破坏该系统(这就是为什么发行版一开始就不会升级GLIBC的原因(。
附言:;如何与旧的GLIBC链接";StackOverflow上的答案,但我找不到一个正确的答案。