Frage

Ich versuche, den Compiler zu erkennen, verwendet, um meinen Quellcode zu kompilieren. Ich kann leicht Makros vordefiniert finden für MSVC oder GCC zu überprüfen (siehe http://predef.sourceforge.net/ zum Beispiel), aber ich kann keinen Makro für Klirren überprüfen finden.

Hat jemand wissen, ob Klirren ein Makro wie __CLANG__ definiert, um zu wissen, was zur Zeit meinen Code kompiliert wird?

War es hilfreich?

Lösung 2

Können Sie die Antwort mit strings + grep:

$ strings /usr/bin/clang | grep __ | grep -i clang
__clang__

Andere Tipps

Um eine Liste aller vordefinierten Makros zu erhalten, dass die Compiler verwendet, verwenden Sie diese:

clang -dM -E -x c /dev/null

Sie können für gcc das gleiche tun.

Diese Frage ist seit Jahren beantwortet, aber lassen Sie mich (für die Zukunft) hinzufügen, wie es in getan wird Windows-:

echo | clang -dM -E -

gleiche wie für GCC:

echo | gcc -dM -E -

Bitte beachten Sie: Der letzte Strich - ist tatsächlich wichtig! (Sie Ansonsten error: no input files für beide Compiler erhalten)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top