GCC/Clang: Verfügbare ObjC-Laufzeiten

GCC/Clang: Verfügbare ObjC-Laufzeiten

Vor einiger Zeit habe ich die ObjFW-Runtime für Objective-C entdeckt, die ziemlich gut ist und eine Menge kann – und sehr klein ist. Aber in letzter Zeit habe ich mich gefragt, welche Runtimes auf welchen Zielen verfügbar sind – und wie man das am besten herausfindet. Ich möchte ein kleines Skript in meiner Konfiguration verwenden, um zu testen, ob ich ObjFW auf der aktuellen Plattform mit der aktuellen Clang- oder GCC-Installation verwenden kann.

Gibt es also eine Möglichkeit, die verfügbaren Objective-C-Laufzeiten entweder auf GCC oder Clang aufzulisten?

Antwort1

Jede GCC-Version ab 4.0 und grundsätzlich jede Clang-Version unterstützt die ObjFW-Laufzeit zumindest teilweise. Das liegt daran, dass die ObjFW-Laufzeit die GNU ABI verwendet, aber noch mehr hinzufügt. Um das zu verwenden, was zusätzlich hinzugefügt wurde, benötigen Sie eine Clang-Version, die -fobjc-runtime=objfw akzeptiert. Eine mögliche Überprüfung finden Sie in der in ObjFW enthaltenen Datei configure.ac.

Dies alles ist nur relevant, wenn Sie die Laufzeit ohne den Rest von ObjFW verwenden möchten. Wenn Sie auch den Rest verwenden möchten, verwenden Sie einfach objfw-config: Es wird das Richtige für Sie tun.

Antwort2

Dies ist keine vollständige Antwort auf Ihre Frage, aberin der Clang-DokumentationAufgelistete verfügbare Laufzeiten: macosx, macosx-fragile, ios, watchos, gcc, gnustep und objfw.

Meiner Meinung nach sind gnustep, gcc und objfw für alle Ziele geeignet, andere nur für OS X, iOS und Watch OS (da diese Laufzeiten betriebssystemspezifisch sind, aber das ist nur mein Vorschlag).

verwandte Informationen