是否存在处理预处理程序指令并提供实际预处理器输出的工具?

时间:2012-01-10 22:01:26

标签: c++ c-preprocessor preprocessor-directive

  

可能重复:
  Preprocessor output

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

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

3 个答案:

答案 0 :(得分:2)

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

对于Clang来说,我相信。

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

答案 1 :(得分:1)

这正是为BoostWave创建的。

  

Wave C ++预处理器库是一个符合标准的C99 / C ++预处理器功能的标准实现,它包含在一个易于使用的界面后面,该界面与标准模板库(STL)的众所周知的习惯用法很好地集成。

答案 2 :(得分:0)

我使用的几乎所有C ++编译器都有命令行开关来执行此任务;在g ++上-E(将输出写在stdout上,请参阅manpage),在VC ++上/EP(输出到stdout)或{{3输出到文件。