Search code examples
gccmacrosc-preprocessorcodesourcery

Anyway to see list of preprocessor defined macros?


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.


Solution

  • 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
    $