针对特定的glibc ABI

时间:2014-09-22 22:39:58

标签: linux gcc glibc abi

我想在Linux上编译一个动态链接的可执行文件,我想要定位一个较旧的glibc ABI,以确保它可以在尽可能多的Linux计算机上运行。我知道对此的典型解决方案是使用chroot或虚拟机,安装旧的工具链,让工具链自然地针对较旧的glibc ABI,但我想知道是否有办法明确告诉编译器"嘿,我希望你依赖版本GLIBCXX_3.4.11"。

谢谢!

1 个答案:

答案 0 :(得分:5)

  

嘿,我希望你依赖版本GLIBCXX_3.4.11

请注意GLIBCXX约为libstdc++ 约为glibc

当您将程序与GLIBCXX_3.4.11链接并使用该版本中已更改的某个符号时,编译器(实际上是链接器)会记录所需的版本,例如libstdc++.so

唯一可以避免这种情况的方法是安排链接不同版本的libstdc++.so 最容易通过chroot或不使用相应的符号。所以不,你不能说"我想要GLIBCXX_3.4.11"。