Yes, use -E -dM
options instead of -c.
Example (outputs them to stdout):
gcc -dM -E - < /dev/null
For C++
g++ -dM -E -x c++ - < /dev/null
From the gcc manual:
Instead of the normal output, generate
a list of `#define' directives for all
the macros defined during the
execution of the preprocessor,
including predefined macros. This
gives you a way of finding out what is
predefined in your version of the
preprocessor. Assuming you have no
file foo.h, the command
touch foo.h; cpp -dM foo.h
will show all the predefined macros.
If you use -dM without the -E option,
-dM is interpreted as a synonym for -fdump-rtl-mach.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…