Estou tentando detectar o compilador usado para compilar meu código-fonte. Posso encontrar facilmente macros predefinidas para verificar se há MSVC ou GCC (consulte http://predef.sourceforge.net/ por exemplo), mas não consigo encontrar nenhuma macro para verificar se há clang.
Alguém sabe se o clang define uma macro como __CLANG__
para saber o que está compilando meu código no momento?
c
macros
clang
c-preprocessor
Pierre Bourdon
fonte
fonte
Respostas:
Para obter uma lista de todas as macros predefinidas que o compilador usa, use o seguinte:
Você pode fazer o mesmo para o gcc.
fonte
Encontre a resposta usando
strings
+grep
:fonte
Esta pergunta foi respondida há anos, mas deixe-me acrescentar (para referência futura) como isso é feito no Windows :
mesmo que para GCC:
Observação: o último traço
-
é realmente importante! (Caso contrário, você obtémerror: no input files
para ambos os compiladores)fonte
/dev/null
éNUL:
/dev/null
dá mais trabalho.