有没有办法列出所有C预处理器定义?

时间:2012-03-02 23:43:43

标签: c-preprocessor

有没有办法列出所有C预处理器定义?

我在使用源代码gcc和

编译的mac上
#if defined __APPLE__
#error "Apple"
#else
#error "Ahh"
#endif

正在给我:

error: #error "Ahh"

我的编译配置选项是:

${PWD}/../gcc/configure --prefix="${PWD}/../build/" --exec-prefix="${PWD}/../build/" --datadir="${PWD}/../build/" --target=avr --enable-languages=c --disable-libssp --disable-lto --disable-nls --disable-libgomp --disable-gdbtk --disable-threads --enable-poison-system-directories

1 个答案:

答案 0 :(得分:3)

如果您正在使用gnu cpp,则可以传递选项-dM以发出所有已定义的宏。那就是:

$ cpp -dM foo.c

会告诉你为foo.c定义的所有内容。 make会在命令行上传递额外的定义,在config.h中可能会有更多内容,但是如果你获取make的输出并重新运行添加了-Xpreprocessor -dM的命令,你应该看到所有内容。