Próbuję wykryć kompilator użyty do skompilowania mojego kodu źródłowego. Mogę łatwo znaleźć predefiniowane makra do sprawdzenia MSVC lub GCC (patrz na przykład http://predef.sourceforge.net/ ), ale nie mogę znaleźć żadnego makra do sprawdzenia, czy nie ma clang.
Czy ktoś wie, czy clang definiuje takie makro __CLANG__
, aby wiedzieć, co aktualnie kompiluje mój kod?
c
macros
clang
c-preprocessor
Pierre Bourdon
źródło
źródło
Odpowiedzi:
Aby uzyskać listę wszystkich wstępnie zdefiniowanych makr, których używa kompilator, użyj tego:
Możesz zrobić to samo dla gcc.
źródło
Znalazłem odpowiedź za pomocą
strings
+grep
:źródło
Na to pytanie odpowiadano od lat, ale pozwólcie, że dodam (na przyszłość), jak to się robi w systemie Windows :
tak samo jak w GCC:
Uwaga: ostatnia kreska
-
jest naprawdę ważna! (W przeciwnym razie otrzymaszerror: no input files
dla obu kompilatorów)źródło
/dev/null
toNUL:
/dev/null
to więcej pracy.