Momentan interessiere ich mich für ARM im Allgemeinen und speziell für iPhone/Android-Ziele. Aber ich will nur mehr über Klänge wissen, da es sich in den kommenden Jahren als wichtig erweist.Clang: Wie Liste unterstützte Zielarchitekturen?
Ich versuchte
clang -cc1 --help|grep -i list
clang -cc1 --help|grep arch|grep -v search
clang -cc1 --help|grep target
-triple <value> Specify target triple (e.g. i686-apple-darwin9)
Ich weiß Klirren -triplet Parameter hat, aber wie kann ich eine Liste aller möglichen Werte für das? Ich fand, dass clang in Bezug auf Cross-Compiling sehr unterschiedlich zu gcc ist, in GCC world sollte man separate binary für alles haben, wie PLATFORM_make oder PLATFORM_ld (i * 86-pc-cygwin i * 86 - * - linux-gnu etc. http://git.savannah.gnu.org/cgit/libtool.git/tree/doc/PLATFORMS)
in Clang Welt, es ist nur eine Binärdatei (wie ich in einigen Foren gelesen). Aber wie bekomme ich die Liste der unterstützten Ziele? Und wenn mein Ziel auf meiner Distribution nicht unterstützt wird (linux/windows/macos/was auch immer), wie bekomme ich dann den, der mehr Plattform unterstützt?
wenn ich letzte Klirren wie dieses SVN:
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
werde ich die meisten Plattformen bekommen? Es sieht so aus, als ob Clang nicht sofort mit Cross-Compiling erstellt wurde, aber da es basiert, sollte es in der Theorie sehr freundlich sein. Danke!
nicht eine vollständige Antwort, aber llc -Version geben Ihnen die Ziele –
Ich glaube, Sie‘ Ich muss auf die Quelle schauen, um die Tripel zu sehen.Und wie ich es verstehe, wird ein Standard-Build von Clang grundlegende Unterstützung für Cross-Compiling enthalten. Grundlegende Unterstützung wandelt Code nur in Objektdateien um (solange der integrierte Assembler das Triple unterstützt, andernfalls müssen Sie .s-Dateien aufnehmen). Sie müssen Header, Bibliotheken, einen Linker liefern (bis lld funktioniert, usw.). – bames53
Obwohl die Standardinstallation nur ausführbare clang- und clang ++ - Dateien enthält, können Sie wie bei anderen Plattformen Kopien oder Hardlinks mit den Tripeln und Quads erstellen in den Namen codiert. clang ++ und clang sind eigentlich nur Kopien voneinander. Es prüft den Namen der ausführbaren Datei, um zu sehen, wie Eingaben verarbeitet werden. –