gpt4 book ai didi

linux - 为什么工具链名称有单独的 OS 和 EABI 字段。?

转载 作者:太空狗 更新时间:2023-10-29 11:03:59 25 4
gpt4 key购买 nike

例如。 arm-未知-linux-gnueabi现在,一旦操作系统即 Linux 被修复,C 库将被修复 (GLibc),因此调用约定和所遵循的 ABI 将被修复。第 4 个字段(即 ABI)的要求是什么?工具链是否可以使用与底层操作系统和 LIBC 使用的 ABI 不同的 ABI?在那种情况下,由所述工具链编译的库将如何在操作系统上运行?

最佳答案

这或多或少是历史原因的问题,又名 the holy wars about the sacred operating system's name .您所说的“工具链名称”实际上称为 Target Triplet ,顾名思义,它有三个 字段,不多也不少。在您的示例中,字段为:

  • 机器/CPU:arm
  • 供应商:未知
  • 操作系统:linux-gnueabi

再举一个我遇到过的引用例子:i686-elf-gcc,用于hobbyist operating system development :

  • 机器/CPU:i686-elf
  • 供应商:未知(隐式)
  • 操作系统:none(隐式;编译器实际上是一个 freestanding cross compiler ,用于 operating system kernels 的开发,因此它输出的代码不需要底层操作系统,因为输出代码是操作系统本身!)。

这只是一个混淆问题,因为字段可能(并且 确实)使用 - 字符,它也用于分隔字段.在您的情况下,操作系统被认为是 linux-gnueabi,也称为 GNU 操作系统,Linux 内核使用 Embedded ARM ABI . Linux 内核 has historically been one of the most portable pieces of software in the world ,因此它有望移植到其他 ARM ABI,尽管我只知道 EABI...

关于linux - 为什么工具链名称有单独的 OS 和 EABI 字段。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32930740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com