I'd like to see all macros that are defined by the invocation of the compiler I'm using. Is there any way to do this? I have seen in the manual it says you can use cpp -dM
but this doesn't work for me. Perhaps I'm doing something wrong?
When I run:
cpp -dM
I get no output at all from the preprocessor. If I try adding -dM
as an option on gcc, I don't notice any difference.
You can use:
gcc -dM -E - < /dev/null
Note that you can also get the compiler macros in addition with this command:
touch bla.c && gcc -dM -E bla.c
For example on my computer:
$ touch bla.c && gcc -dM -E bla.c | wc -l
486
$ gcc -dM -E - < /dev/null | wc -l
124
$