我想在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”.