Cmake - 想要查看中间.i文件

时间:2014-01-09 17:35:36

标签: c cmake c-preprocessor

我想知道如何让Cmake给我一个目标,允许我从 C 程序中保存.i文件并完成宏扩展等。

我是否需要制作自定义目标?

2 个答案:

答案 0 :(得分:2)

如果您正在使用Makefile生成器,那么已存在.i文件的目标。输入make help,您将看到所有目标,包括以.i.s.o为后缀的目标。

答案 1 :(得分:1)

如果您不想手动运行make目标并过滤.i扩展名,可以这样做:

for subdir in */
do 
    (cd $subdir && make $(make help |& grep \\.i$ | cut -c4-))
done

或者,我有时将compile_command.jsonnpm的命令行工具一起用于json:

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON # ... 
json < compile_commands.json -ga "command" | sed 's/.cpp.o -c/.cpp.ii -E/' | sh -

但请注意,可能存在边缘情况(例如尚未创建的目标目录)。