【发布时间】:2019-07-05 03:32:58
【问题描述】:
我正在使用 glibc 2.27 附带的 ubuntu 18 中的 gcc4.9 编译一个程序,并尝试在 redhat 7.4 上运行生成的程序。不幸的是,Redhat 7.4 带有 glibc 2.17,所以我需要将我的应用程序与该版本动态链接。
如何强制 gcc 使用特定版本的 glibc?
注意:建议静态链接前请先研究 glibc 许可证。
干杯,干杯
【问题讨论】:
我正在使用 glibc 2.27 附带的 ubuntu 18 中的 gcc4.9 编译一个程序,并尝试在 redhat 7.4 上运行生成的程序。不幸的是,Redhat 7.4 带有 glibc 2.17,所以我需要将我的应用程序与该版本动态链接。
如何强制 gcc 使用特定版本的 glibc?
注意:建议静态链接前请先研究 glibc 许可证。
干杯,干杯
【问题讨论】:
不仅 glibc 存在问题,还有 libgcc 和 libstdc++ 以及程序可能链接到的任何其他库。
正确的解决方案是设置一个 RedHat 7.4 chroot 并在那里编译您的代码。
【讨论】:
/lib/x86_64-linux-gnu/libgcc_s.so.1: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=92e0be1929d28508cf9c6d5754c7eb48c12255b3, stripped