Распознавание clang, gcc и tcc с помощью макросов, определенных реализацией
Я использую clang
, gcc
и tcc
, и я хотел бы иметь возможность различать три в общем заголовке.
судя по их макросам, я ожидаю, что присутствие
__clang__
макрос однозначно идентифицирует clang.
Я не могу получить макрос-дамп с tcc
( $compiler -x c -E -dM /dev/null
не работает в его случае ).
что такое макрос(ы) (если есть), который будет однозначно идентифицировать gcc (и, возможно, tcc)?
1 ответов
используйте __TINYC__ для обнаружения tcc1.
обнаружение gcc и clang объясняется в этом вопросе StackOverflow:обнаружение gcc в отличие от msvc / clang с макросом
1 (ЦИТ. по: http://bellard.org/tcc/tcc-doc.html#SEC9)
__TINYC__ является предопределенным макросом 1, чтобы указать, что вы используете TCC.