Eine Kompilierung könnte mehr bedeuten, als nur Quellcode in Binärcode zu konvertieren. Ein Compiler wie GCC bietet auch bestimmte Bibliotheken, in diesem Fall libgcc für die Handhabung, was Hardware nicht verarbeiten kann. Wenn ein Compiler eine Toolchain wird, stellt er auch Laufzeitbibliotheken zur Verfügung, die durch die Programmiersprache ähnlich denen im Zielsystem sind. In arm-linux-gnueabi-
Fall, der libc sein könnte und arm-linux-androideabi-
das ist bionic.
Sie können kompatible Objektdateien erstellen, die von verschiedenen Compilern verwendet werden können. Dafür steht elf.
Sie können statische ausführbare Dateien erzeugen, die sehr groß sein können und auf jeder passenden Hardware/Kernel funktionieren sollten, denn in diesem Fall zielen Toolchains darauf ab.
Wenn Sie jedoch dynamische ausführbare Dateien erstellen, können diese nur auf Systemen ausgeführt werden, die ihre Abhängigkeiten unterstützen. Aus diesem Grund wird eine einfache "Hallo Welt" -Anwendung, die nicht von arm-linux-gnueabi-
statisch aufgebaut ist, auf einem Android-System nicht funktionieren, da es bionic, nicht libc bietet.
können Sie jede Arm-Toolchain für Arm-Architektur verwenden wird für Sie arbeiten. (Nur 32-Bit/64-Bit-Unterschied merken) –
vielen Dank! – bolzano