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

Does a tool exist to process preprocessor directives and give the actual preprocessor output?

本文关键字:处理器 预处理 输出 工具 存在 处理 指令 是否      更新时间:2023-10-16

可能重复:
预处理器输出

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

有没有一个工具可以运行这些工具,并显示实际发送给编译器的文本?有可能看到预处理器的输出吗?

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

我相信Clang也是如此。

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

这正是Boost.Wave的初衷。

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

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