Linux 的二进制兼容问题

                     

贡献者: addis

  • 本文处于草稿阶段。
预备知识 g++ 编译器创建静态和动态链接库

1. CPU 兼容性

2. 库兼容性

   参考这里的回答

   静态链接的程序一般没什么问题(除了 GLIBC)。但对于动态链接的程序,可以把所有非基础的 so 依赖库打包到一个文件夹里面并设置 rpath/runpath 或者 LD_LIBRARY_PATH。但是这里面不能包括一些基础的系统库例如

   最兼容的方法大概使用 chroot 或者 docker,可以把除了 vdso 以外的所有动态库都放到 fake root 文件夹里面。

关于 GLIBC 兼容性

图
图 1:当你使用 C/C++ 头文件时一般就默认链接 GLIBC,当然也可以选 MUSL

致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利