我正在使用 buildroot 在专用机器上构建一个新的 gcc 交叉编译器。
它工作得很好,但我现在需要从另一台机器上运行这个 gcc,我没有相同的 libc 版本:-(。当然 gcc 然后崩溃了。
是否可以使用 buildroot 静态构建 gcc ?
您可以尝试将 -static 传递给链接器(通过 LDFLAGS),但请注意 glibc 不再支持完全静态链接(它需要支持静态链接的 glibc 构建)。
这是因为 nss 库(名称服务器开关)将被动态加载(除非您编译自己的 glibc——但这违背了 nss 的目的)。然而,这可能足以让您减少对系统库的依赖。
但我可以假设静态链接的 gcc 相当大——这可能会导致启动时间过长。
如果您的目标只是制作一个可重定位的工具链,那么与 expat、gmp、mpfr 和 mpc 进行静态链接就足够了。您可以简单地应用https://patchwork.ozlabs.org/patch/359841/