针对特定的glibc ABI

sta*_*oat 4 linux gcc glibc abi

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

谢谢!

Emp*_*ian 5

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

请注意,这GLIBCXX是关于libstdc++,而不是关于glibc.

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

你能避免这种情况的唯一方法是通过安排反对不同版本的链接libstdc++.so,而是最简单的通过来实现chroot,或者通过不使用相应的符号.所以不,你不能只说"我想要GLIBCXX_3.4.11".