C++ 是否存在处理预处理器指令并给出实际预处理器输出的工具?

C++ 是否存在处理预处理器指令并给出实际预处理器输出的工具?,c++,c-preprocessor,preprocessor-directive,C++,C Preprocessor,Preprocessor Directive,可能重复: 我发现自己正在调试Android的STL端口。它始终使用许多(10-100?)预处理器指令来决定预处理器实际输出的代码。大量的#if和#ifdef块 是否有一个工具可以运行这些代码并显示实际发送给编译器的文本?是否可以查看预处理器的输出?在GCC中,使用GCC-E source.c仅显示预处理器的输出 我相信叮当声也是 有关其他编译器,请参阅手册。这应该清楚地记录下来。在GCC中,使用GCC-E source.c仅显示预处理器的输出 我相信叮当声也是 有关其他编译器,请参阅手册。这

可能重复:

我发现自己正在调试Android的STL端口。它始终使用许多(10-100?)预处理器指令来决定预处理器实际输出的代码。大量的
#if
#ifdef


是否有一个工具可以运行这些代码并显示实际发送给编译器的文本?是否可以查看预处理器的输出?

在GCC中,使用
GCC-E source.c
仅显示预处理器的输出

我相信叮当声也是


有关其他编译器,请参阅手册。这应该清楚地记录下来。

在GCC中,使用
GCC-E source.c
仅显示预处理器的输出

我相信叮当声也是

有关其他编译器,请参阅手册。这应该清楚地记录在案。

这正是我们想要的。是为……而创建的

波形C++预处理器库是一个标准化的符合实现的C99/C++预处理器功能,它封装在一个简单的使用界面后面,它与标准模板库(STL)的熟知的成语很好地结合在一起。 这正是我想要的。是为……而创建的

波形C++预处理器库是一个标准化的符合实现的C99/C++预处理器功能,它封装在一个简单的使用界面后面,它与标准模板库(STL)的熟知的成语很好地结合在一起。


几乎所有的C++编译器都有它的命令行开关来执行这个任务;关于C++的代码< >代码>(代码输出>代码> STDUD/<代码>,见VC++),它是(输出到代码> STDUD/<代码>)或(输出到文件).< /P> < P>几乎所有的C++编译器都有它的命令行开关来执行这个任务;在g++上是
-E
(将输出写入
stdout
,请参见),在VC++上是(输出到
stdout
)或(输出到文件)。

对于VC++,还有
/E
/EP
。对于VC++,还有
/E
/EP
。哇,我真不敢相信我错过了这个!谢谢一个简单的问题:当读取输出时,是否只有不以“#”开头的行被发送到编译器?@AdamS:不太可能。编译器仍然需要剩余的指令来生成错误消息中正确的文件名和行号输出。哇,我真不敢相信我错过了这个!谢谢一个简单的问题:当读取输出时,是否只有不以“#”开头的行被发送到编译器?@AdamS:不太可能。编译器仍然需要剩余的指令来生成错误消息中正确的文件名和行号输出。