Electron官方的构建流程中对构建已有详细说明,不再赘述。
但是自9.x版本后Electron官方不再提供debug版本的编译脚本debug.gn,只有testing.gn、release.gn两个编译脚本。只能编译出已优化的Electron,无法获得C++中的symbol table,导致调试时无法打印函数及变量。
要获得symbol table,编译的流程为:
- 编写debug.gn,在testing.gn基础上改写symbol_level=2, is_debug=true
// /electron/build/args/debug.gn
import("all.gn")
is_debug = true
is_component_build = false
is_component_ffmpeg = true
is_official_build = false
dcheck_always_on = true
symbol_level = 2
-
生成构建文件:gn gen out/Debug --args="import("//electron/build/args/debug.gn") $GN_EXTRA_ARGS"
-
修改build/config/compiler/compiler.gni,否则编译会报错
forbid_non_component_debug_builds = false
- 开始编译: ninja -C out/Debug electron
编译完成后可以正常打印变量值