“-D”(定义)宏是否与已经预处理的C / C ++上的编译器相关?

时间:2012-04-24 00:28:17

标签: build compiler-construction c-preprocessor

任何C / C ++ 编译器(不是预处理器)是否都考虑在命令行中定义的重要宏?此问题包括用户定义的宏和众所周知的(编译器或系统特定的)宏。

(我不是在询问编译器开关,而是在命令行上只有那个SINGLE switch-to-define-mac。)

例如,如果您已将myfile.cpp“预处理”为myfile.i,然后想将myfile.i编译为myfile.obj/myfile.o,让-Dmacro在命令行中为myfile.i ==> myfile.obj/myfile.o定义一些“宏”是否有意义?

同样,链接器是否考虑重要宏(在任何地方定义)?

1 个答案:

答案 0 :(得分:3)

某些调试格式将记录预处理器定义,以便可以在调试器中访问它们。

(但我知道没有接受预处理器标志的链接器。)