我应该修改什么才能预处理整个项目中的所有C文件?

时间:2018-06-11 03:26:27

标签: c makefile cmake c-preprocessor

为了解决我正在开发的工具所面临的各种问题,我希望能够生成所有C文件的预处理版本*.c)在给定项目中,尤其是删除宏,但也包含其他一些细节。我知道对于单个文件可以使用gcc -Ecpp进行预处理,但是当出现复杂的依赖关系和包含时,就像在大型项目中一样,单个预处理是无用的或完全不实用的。

现在,当然,这些项目通常也会有一些规范来以高效的方式编译整个项目,例如Makefile或配置文件。因此,我的问题是:我需要在那里修改(或者至少要查看)在项目中仅为每个C文件生成预处理的C文件,而不是制作项目

你可以假设它是一个带有C文件的开源项目,但是(不感兴趣)其他编程语言编写的其他文件也可以存在。

1 个答案:

答案 0 :(得分:1)

这是一个简单的make规则,用于从.cpp个文件生成预处理的输出文件。

%.i: %.cpp
    g++ -E -o $@ $?

如果您有file.cpp,则可以使用

生成file.i
make file.i

您可以设置类似的规则,以便从.i个文件生成.c个文件。

%.i: %.c
    gcc -E -o $@ $?

如果修改了.cpp文件或.c文件,则可以通过运行.i重新生成make个文件。