【发布时间】:2016-01-20 10:19:30
【问题描述】:
在工作中,我们使用 GNU CPP 作为自定义语言的预处理器。预处理器下游的流理解行标记(# 123 foo-bar.extension 形式)并将其信息嵌入到最终编译的源代码中。
这一切都很好,但整个过程通过将所有内容写入临时目录并在将输入交给 CPP 之前对输入进行一些(预)预处理。此转换不会更改行号。因此,CPP 会在 my-tmp-dir/foo.input-pp 形式的文件上被调用,并且该名称最终嵌入在行标记中。我希望能够欺骗一些东西,以便 CPP 发出 original/path/foo.original.input 形式的行标记。
CPP 是否有任何命令标志可以让我这样做?
【问题讨论】:
-
您能否举一个非常基本的输入示例、预期输出、您为获得此预期输出所做的工作以及实际得到的结果?
-
写一个名为
foo.c的空文件并用gcc -E foo.c对其进行预处理。您会看到提到foo.c的行标记。我想告诉 CPP,这些实际上应该是bar.c
标签: c-preprocessor compiler-flags