【发布时间】:2011-01-11 00:38:31
【问题描述】:
参数-S -save-temps 工作正常,只要我不在同名文件上使用它们。
考虑以下情况:我有一个项目,它有一个主目录和一个名为subDir 的子目录,两个目录中都有名为file.c 的文件。如果我现在调用gcc -S -save-temps file.cpp subDir/file.c,只会生成一个名为file.i 的中间文件。
这是预期的行为,正如 gcc 的 man 文件告诉我的那样,当使用 -save-temps 时,中间文件将始终放置在当前路径中。
我的问题是,我正在从事我事先不知道的项目。很可能有人在他的 Makefile 中构建了上述示例。在那种情况下,我会被卡住,因为我需要两个中间文件。
对我正在构建的系统说几句话(为了更好地理解):我的工具使用make --just-print 来收集调用,调用项目的make 文件。我扫描这些调用以查找编译器调用并添加-save-temps 和-S 选项。目的是获取在编译项目过程中使用的每个预处理文件。
您有什么想法吗,即使应该出现上述示例,我如何才能获得每个预处理文件?
【问题讨论】:
标签: c++ c gcc compiler-construction g++