如何为基于GN构建的V8项目添加-save-temps参数以保留编译中间文件
方式一:生成构建目录时单次指定(无需改配置,适合临时使用)
V8基于GN+Ninja构建,你可以在生成构建目录的命令里直接传入编译参数即可:
- 直接用
gn gen的话执行:gn gen out/Default --args='cflags=["-save-temps"] cflags_cc=["-save-temps"]' - 如果你用V8官方的
gm.py辅助构建脚本,执行:gm out/Default release -- cflags=["-save-temps"] cflags_cc=["-save-temps"]
这种方式仅对当前生成的构建目录生效,不影响其他构建配置。
方式二:修改已有构建目录的配置(长期生效于该目录)
如果你已经生成过构建目录,直接编辑对应目录下的配置文件即可:
- 打开构建目录下的
args.gn文件,比如out/Default/args.gn - 新增配置行:
cflags += ["-save-temps"],也可以同时加cflags_cc += ["-save-temps"]保证C++代码也生效 - 保存后正常执行
ninja -C out/Default编译即可,后续重复编译不需要再修改配置
注意:
-save-temps生成的.i预处理文件、.s汇编文件等中间产物,会保存在构建输出目录(比如out/Default)下和源码路径对应的子目录中,不会污染源码目录。
内容的提问来源于stack exchange,提问作者Melab
相关产品推荐
相关产品推荐

