2014-03-29 26 views
5

Kann ich Dateien (z. B. C- oder C++ - Quellcode) für mein Android-Gerät mit der arm-linux-gnueabi-* Toolchain kompilieren?arm-linux-gnueabi toolchain vs arm-linux-androidabi toolchain.

Meine Frage mag ein wenig albern erscheinen, aber bekomme ich das gleiche Ergebnis wie das Zusammenstellen mit der arm-linux-androideabi-* Toolchain?

+1

können Sie jede Arm-Toolchain für Arm-Architektur verwenden wird für Sie arbeiten. (Nur 32-Bit/64-Bit-Unterschied merken) –

+0

vielen Dank! – bolzano

Antwort

12

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.

Verwandte Themen