【问题标题】:Building glibc from source causes an error从源代码构建 glibc 会导致错误
【发布时间】:2021-10-20 00:28:47
【问题描述】:

我正在尝试在 RedHat 系统上编译 glibc(更正:2.34,而不是 2.3.4)。我在尝试运行配置时收到此错误:

*** These critical programs are missing or too old: make compiler
*** Check the INSTALL file for required versions.

我安装了最新版本的“make”:

> make --version
GNU Make 4.3

但是,即使使用最新版本的“make”,我仍然会遇到同样的错误。是什么导致了问题?

【问题讨论】:

  • 我们怎么知道?您必须查看配置脚本生成的输出日志,看看它对什么感到不安。然而,glibc 2.3.4 是在 2004 年发布的,所以它已经 17 岁了。我怀疑旧版本 glibc 中的版本检查假定 GNU make 版本将以“3”开头(例如,3.81 等)并且失败,因为您的版本以“4”开头。跨度>
  • 我还应该提到,问题不只是制造;它也是“编译器”,这意味着你有比 make 更大的问题(构建一个旧版本的 make 非常简单)。
  • 我打错了。我正在尝试编译 glibc 2.34,而不是 2.3.4。
  • 文件config.log 将显示它运行的识别这些错误的精确命令。看看它,并在您的问题中包含相关部分。例如,可能是在您系统的其他位置安装了另一个版本的 make,并且由于某种原因正在运行该版本。

标签: gnu-make gnu glibc


【解决方案1】:

glibc 的configure 更喜欢gnumakegmake 而不是make,如果它们在PATH 命令搜索路径上可用。很有可能你有 gmake 3.81 版本的二进制文件。

【讨论】:

    【解决方案2】:

    我认为你应该使用 gcc 版本 6.5.0,

    ct-ng 可以帮助你构建 glibc。 ct-nghttp://crosstool-ng.github.io/docs/

    1. ct-ng menuconfig
    2. ct-ng build
    

    您可以在第 1 步选择 gcc 版本。

    提醒一下,glibc-2.34 删除了一些库,不再像 *-2.33.so 那样在 dir sysroot/lib/ 下创建。链接:https://lwn.net/Articles/864920/

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多