arm-none-eabi和arm-linux-gnueabi之间的区别?

Chr*_*sBr 8 linux embedded abi toolchain

arm-none-eabi和arm-linux-gnueabi有什么区别?我知道如何使用它们(一个用于裸机软件,另一个用于打算在Linux上运行的软件)的区别。但是技术背景是什么?

据我所知,我看到了ABI的区别,它类似于API,但在二进制级别。它确保了不同应用程序的互操作性。

但是我真的不了解拥有或没有操作系统会以哪种方式影响我的工具链。我唯一想到的是,在编译裸机软件时,可能必须将库静态链接(对吗?),因为没有操作系统可以动态地提供它们。

我发现与此主题相关的最多页面只是回答了如何使用工具链,但没有回答技术背景。我是机电一体化和嵌入式系统的新学生,所以我在该领域的经验有限。

小智 9

也许这个描述的链接会有所帮助。

可能最大的不同:

“裸机 ABI 将假设与 Linux ABI(假设 glibc)不同的 C 库(例如 newlib,甚至没有 C 库)。因此,编译器可能会根据它认为上面可用的内容进行不同的函数调用并超越标准 C 库。”

  • 链接已下!:( :( (4认同)