有没有办法列出所有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
答案 0 :(得分:3)
如果您正在使用gnu cpp,则可以传递选项-dM
以发出所有已定义的宏。那就是:
$ cpp -dM foo.c
会告诉你为foo.c定义的所有内容。 make会在命令行上传递额外的定义,在config.h中可能会有更多内容,但是如果你获取make的输出并重新运行添加了-Xpreprocessor -dM
的命令,你应该看到所有内容。