本文介绍了arm-eabi arm-gnueabi 和 gnueabi-hf 编译器之间的区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

arm-eabi、gnueabi 和 gnueabi-hf 交叉编译器有什么区别?我发现很难选择适合我的目标平台的可执行文件.arm 有本地编译器吗?

解决方案

我不太确定:

  • eabi 代表将在裸机臂核心上运行的代码编译.
  • gnueabi 代表 linux 的代码编译

对于 gnueabi/gnueabi-hf 部分,我在这里找到了答案.p>

gcc-arm-linux-gnueabi 是 armel 架构的跨工具链包.此工具链暗示由 gcc 的 -mfloat-abi=soft 或 -mfloat-abi=softfp 选项生成的 EABI.

gcc-arm-linux-gnueabihf 是 armhf 架构的跨工具链包.此工具链暗示由 gcc -mfloat-abi=hard 选项生成的 EABI.

'hf' 表示硬浮点,表示编译器及其底层库正在使用硬件浮点指令,而不是浮点的软件实现,例如定点软件实现.eabi"指的是底层二进制文件的样子.可以说这些可以通过 gcc 的标志来实现,但问题在于裸机预编译库.除非您从源代码重新编译所有内容,否则单独使用带有标志的 gcc 可能是不可行的.即使在这种情况下,您也可能必须使用适当的编译选项仔细配置每个包或库.

What is the difference between arm-eabi, gnueabi and gnueabi-hf cross compilers?I am kind of finding it difficult to choose the executable that is correct for my target platform.Is there a native compiler for arm?

解决方案

I'm not completely sure:

  • the eabi stands for the compilation of code which will run on bare metal arm core.
  • the gnueabi stands for the compilation of code for linux

For the gnueabi/gnueabi-hf part, I found an answer here.

'hf' means hard-float which indicates that the compiler and its underlying libraries are using hardware floarting point instructions rather than a software implimentation of floating point such as fixed point software implimentaions.The 'eabi' refers to what the underlying binary is going to look like.It can be argued that these can be achieved with flags to gcc but the issue is that of bare metal pre-compiled libraries. Unless you are recompiling everything from source, it may not be feasible to use gcc with flags alone. Even in that case you might have to carefully configure each package or library with the appropriate compile options.

这篇关于arm-eabi arm-gnueabi 和 gnueabi-hf 编译器之间的区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

06-30 12:55