相关文章推荐
被表白的日记本  ·  Windows ...·  4 月前    · 

用Buildroot 2019.05构建一个glibc交叉编译器

0 人关注

我想把我的应用程序以二进制格式发布。然而,由于我在Fedora 30上编译(它有glibc-2.29),我的二进制和所需的依赖有多个对glibc-2.29符号的引用。似乎太多,无法有效地(发生在系统依赖关系的深处)使用类似以下的东西。

__asm__(".symver logf,logf@GLIBC_2.2.5");

因此,我一直试图建立一个glibc交叉编译器。由于我需要编译大量的依赖项(Xorg、OpenGL等),我认为使用 Buildroot .不幸的是,Buildroot 2019.05似乎自动使用glibc-2.29,而在 make menuconfig 中似乎没有选项可以改变这一点。

有什么办法可以强迫Buildroot使用glibc-2.24?我更希望不要在一个追踪旧版glibc的发行版上进行编译。

2 个评论
你的目标是什么?也就是应用程序必须运行的设备。使用旧版Fedora/其他Linux发行版的电脑?嵌入式设备?
@Luca Ceresoli 我的目标是任何使用2.29以上的glibc的Linux系统。
linux
glibc
buildroot
Amanda
Amanda
发布于 2019-06-21
2 个回答
Mr Pang
Mr Pang
发布于 2019-06-21
0 人赞同

我想你可以试试老的buildroot版本。但我不确定哪个版本使用glibc-2.24。

Luca Ceresoli
Luca Ceresoli
发布于 2019-06-21
0 人赞同

Solution 1:

使用最初使用的工具链来产生你的应用程序必须运行的根文件系统(或分布)。

这样,你将拥有相同的glibc版本 所有其他库的相同版本。

Solution 2:

静态地构建你的应用程序。但你必须检查客户/服务器组件(如Xorg)是否能在与客户版本不同的服务器版本下工作。

Other solutions:

如果这些都不可能,你可能想尝试以下方法之一。

  • Use Buildroot 2017.08. Glibc was bumped to 2.26 in 2017.11.
  • Build a toolchain with Crosstool-NG , which supports many glibc versions,
  •