0

可能重复:
预处理器输出

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

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

4

3 回答 3

2

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

我相信 Clang 也是如此。

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

于 2012-01-10T22:02:51.213 回答
1

这正是BoostWave是为此而创建的。

Wave C++ 预处理器库是一个符合标准的强制 C99/C++ 预处理器功能的实现,封装在一个简单易用的接口后面,它与标准模板库 (STL) 的众所周知的习语很好地集成在一起。

于 2012-01-10T22:03:13.133 回答
0

我使用的几乎所有 C++ 编译器都有其命令行开关来执行此任务;在 g++ 上它是-E(将输出写入stdout,参见手册页),在 VC++ 上它是/EP(输出到stdout)或/P(输出到文件)。

于 2012-01-10T22:04:07.537 回答