我想知道如何让Cmake给我一个目标,允许我从 C 程序中保存.i文件并完成宏扩展等。
我是否需要制作自定义目标?
答案 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.json
与npm
的命令行工具一起用于json:
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON # ...
json < compile_commands.json -ga "command" | sed 's/.cpp.o -c/.cpp.ii -E/' | sh -
但请注意,可能存在边缘情况(例如尚未创建的目标目录)。