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

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

我是否需要制作自定义目标才能执行此操作?

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

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

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

或者,我有时在json的命令行工具中使用了compile_command.json

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

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