Was vordefiniert Makro kann ich Klirren erkennen?
-
27-09-2019 - |
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?
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)