什么是arm-eabi、gnueabi和gnueabi-hf交叉编译器之间的区别?
我不是完全确定:
关于gnueabi/gnueabi-hf,我在这里找到了答案。
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的标志来实现它们,但问题在于裸机预编译库。除非您从源代码重新编译所有内容,否则仅使用标志可能不可行。即使在这种情况下,您也可能需要仔细配置每个包或库的适当编译选项。
armel
和armhf
之间的区别基本上是编译器生成的软件浮点和硬件浮点EABI之间的区别。 - sherrellbc-gnueabi
和-gnueabihf
)。为什么不只有一个工具链来理解-mfloat-abi=soft/hard/softfp
选项(就像本地的arm linux gcc一样)? - Anton Ostrouhhov