我想在 Linux 上编译一个动态链接的可执行文件,我想以较旧的 glibc ABI 为目标,以确保它可以在尽可能多的 linux 计算机上运行。我知道对此的典型解决方案是使用 chroot 或虚拟机,安装旧工具链,并让工具链自然地针对旧 glibc ABI,但我想知道是否有办法明确告诉编译器“嘿,我希望您依赖版本 GLIBCXX_3.4.11”。
谢谢!
最佳答案
Hey, I want you to depend on version GLIBCXX_3.4.11
请注意,GLIBCXX
是关于 libstdc++
的,不是 glibc
。
当您将程序链接到 libstdc++.so
并使用一些已更改的符号时,编译器(实际上是链接器)会记录所需的版本,例如 GLIBCXX_3.4.11
在那个版本中。
避免这种情况的唯一方法是安排链接到不同版本的 libstdc++.so
,这最容易通过 chroot< 实现
,或者不使用相应的符号。所以不,你不能只说“我想要 GLIBCXX_3.4.11”。
关于linux - 针对特定的 glibc ABI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25984149/