Я пытаюсь определить компилятор, использованный для компиляции моего исходного кода. Я легко могу найти предопределенные макросы для проверки MSVC или GCC ( например, см. Http://predef.sourceforge.net/ ), но я не могу найти ни одного макроса для проверки на наличие clang.
Кто-нибудь знает, определяет ли clang макрос, например __CLANG__
, чтобы узнать, что в настоящее время компилирует мой код?
c
macros
clang
c-preprocessor
Пьер Бурдон
источник
источник
Ответы:
Чтобы получить список всех предопределенных макросов, которые использует компилятор, используйте это:
Вы можете сделать то же самое для gcc.
источник
Нашел ответ с помощью
strings
+grep
:источник
На этот вопрос ответили годами, но позвольте мне добавить (для справки в будущем), как это делается в Windows :
то же, что и для GCC:
Обратите внимание: последний штрих
-
действительно важен! (В противном случае вы получитеerror: no input files
для обоих компиляторов)источник
/dev/null
isNUL:
/dev/null
- это больше работать.