【问题标题】:build libada from gcc source从 gcc 源构建 libada
【发布时间】:2021-09-09 01:05:13
【问题描述】:

我尝试使用以下脚本从 gcc-11.2.0 构建 gnat 编译器

./configure --prefix="/root/gcc-11" --enable-languages="c,c++,ada"  --enable-libada

然后我得到一个 gnat 编译器,但没有 ada 标准库,发现 gcc-11.2/gcc/ada/libgnat/ 中的库的构建脚本 libada.gpr 可以独立。

GPR 工具告诉它在尝试使用 gprbuild -Plibada 构建 libada 时需要 libgnarl.lst 才能继续。

这是我的问题:

  1. libgnat 和 libgnarl 有什么区别
  2. 我在哪里可以获得 libgnarl.lst
  3. 是否有构建 libada 的指南?

【问题讨论】:

标签: gcc ada


【解决方案1】:

libgnarl 包含运行时的任务元素,libgnat 包含其余部分。它们被拆分,以便不执行任务的程序可以比原本需要的更小。

GCC installation instructions 包含在 Configuration 部分中,

首先,我们强烈建议将 GCC 构建到与不驻留在源代码树中的源代码不同的目录中。这就是我们通常构建 GCC 的方式;构建 srcdir == objdir 应该仍然可以工作,但没有得到广泛的测试;不支持 objdir 是 srcdir 的子目录的构建。

我这样构建 GCC 的经验是运行时得到了正确构建。 (对于不太常见的操作系统,情况可能并非如此;您的操作系统是什么?)。

在这样的构建之后,我发现这些文件隐藏在 $build/gcc/ada/rts/ 中的许多其他文件中:

libada.gpr
libgnarl.gpr
libgnarl.lst
libgnat.gpr
libgnat.lst
libgnat_common.gpr

我得到强烈的印象(特别是来自libada.gpr),它们旨在重新为特定目的构建运行时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2018-08-31
    • 1970-01-01
    • 2013-04-05
    相关资源
    最近更新 更多