J'essaye de détecter le compilateur utilisé pour compiler mon code source. Je peux facilement trouver des macros prédéfinies pour vérifier MSVC ou GCC (voir http://predef.sourceforge.net/ par exemple), mais je ne trouve aucune macro pour vérifier le clang.
Est-ce que quelqu'un sait si clang définit une macro comme __CLANG__
pour savoir ce qui compile actuellement mon code?
c
macros
clang
c-preprocessor
Pierre Bourdon
la source
la source
Réponses:
Pour obtenir une liste de toutes les macros prédéfinies utilisées par le compilateur, utilisez ceci:
Vous pouvez faire de même pour gcc.
la source
J'ai trouvé la réponse en utilisant
strings
+grep
:la source
Cette question a reçu une réponse pendant des années, mais permettez-moi d'ajouter (pour référence future) comment cela se fait sous Windows :
idem que pour GCC:
Remarque: le dernier tiret
-
est en fait important! (Sinon, vous obtenezerror: no input files
pour les deux compilateurs)la source
/dev/null
isNUL:
/dev/null
est plus de travail.