Was ist der Unterschied zwischen Arm-Eabi, Gnueabi und Gnueabi-hf Cross-Compiler. Ich finde es irgendwie schwierig, die Compiler auszuwählen. Gibt es einen nativen Compiler für Arm?Unterschied zwischen arm-eabi arm-gnueabi und gnueabi-hf compilern
23
A
Antwort
23
Ich bin nicht ganz sicher:
- die EABI steht für die Erstellung von Code, der auf blankem Metall Arm Kern laufen.
- die gnueabi für die Erstellung von Code steht für Linux
Für die gnueabi/gnueabi-hf Teil, fand ich eine Antwort here.
gcc-arm-linux-gnueabi ist das Cross-Toolchain-Paket für die Armel-Architektur. Diese Toolchain impliziert die EABI, die von den gcc-Optionen -mffloat-abi = soft oder -mfloat-abi = softfp generiert wird.
gcc-arm-linux-gnueabihf ist das Toolchain-Paket für die Armhf-Architektur. Diese Toolchain impliziert den von der Option gcc -mfloat-abi = hard generierten EABI.
Siehe auch: https://wiki.linaro.org/WorkingGroups/ToolChain/FAQ#What_is_the_differences_between_.2BIBw-arm-none-eabi-.2BIB0_and_.2BIBw-arm-linux-gnueabihf.2BIB0.3F_Can_I_use_.2BIBw -arm-linux-gnueabihf.2BIB0_tool_chain_in_bare-metal_environment.3F_How_do_you_know_which_toolchain_binary_to_use_where.3F * Der Bare-Metal-ABI (eabi) wird eine andere C-Bibliothek (zB newlib oder gar keine C-Bibliothek) an den Linux-ABI übergeben (gnueabi, der glibc annimmt)). Daher kann der Compiler verschiedene Funktionsaufrufe abhängig von dem, was er glaubt über die Standard-C-Bibliothek verfügbar ist. * – Lekensteyn
Obwohl ich sehe, dass Sie dies aus einer externen Quelle gezogen haben, ist die Verwendung von "Architektur" hier irreführend. Der Unterschied zwischen "armel" und "armhf" ist im Wesentlichen der Unterschied zwischen dem Software-Gleitkomma und dem von den Compilern erzeugten Hardware-Gleitkomma-EABI. – sherrellbc
Ok @sherrellbc Würden Sie eine Umformulierung empfehlen? – Akhneyzar