最近心血来潮想编译一下和CEF同源的Electron源码。虽然已经有很多CEF的经验,但在编译Electron的时候还是遇到了一些小问题,这里简单记录一下。
文章目录
编译工具
我是按照Electron提供的 Build Tools 来编译的。因为之前经常编译CEF,所以像 depot_tools、git 这些早就有。然后按照指导,额外安装了 yarn,并且更新了我机器上的 npm 和 node.js版本。
编译过程
在Electron Build Tools指导页面上,针对init / sync / build 做出了详细的说明,并在一开始就给出了编译命令:
e init --root=~/electron --bootstrap testing
不过我为了理解Electron整个的编译细节,采取了分部执行的方式。(注:下文都是在Windows上执行的)
首先我使用 init 来初始化源码目录:
e init master-release -i release --root=D:\Electron\electron\
其中,master-release是随便起的名字。-i 后面可以跟testing或者release,我的理解对应的是CEF的debug和release版本。-i 应该是会使用 \electron\build\args\ 下的对应gn文件来完成编译。 \electron\build\args\ 下的gn里包含了若干关键设置,例如 rtc_use_h264 和 is_component_ffmpeg,这个在CEF上如果你不进行设置,编译出来的版本是不支持H.264的。
接下来使用 sync 来下载代码:
e sync
sync主要是利用 gclient (depot_tools包含的命令)来完成代码的下载和同步。这一步我没有遇到什么问题,下载还是比较顺溜的。主要是最近中美关系好像好了点了,我的代理工作的一直比较稳定,哈哈。
下载后的目录大概13~14GB。我看了一下和CEF的目录结构基本上差不多。都是在Chromium源码目录的基础上,增加了electron自己的文件夹,不过比CEF更多一点,例如 thiry_party 下多了 electron_node文件夹,这个是CEF没有的。
接下来就是正式的编译工作了。我执行了此命令:
e build
遇到的问题
Running “goma_ctl.py ensure_start” in … 长时间卡住不动
goma_ctl.py 这个脚本位于 C:\Users{计算机用户名}.electron_build_tools\third_party\goma\下,我终止掉命令后,手动在 goma 目录下运行 goma_ctl.p

作者心血来潮编译Electron源码,记录编译过程。使用Electron提供的Build Tools,分部执行init、sync、build命令。编译中遇到如goma_ctl.py卡住、依赖缺失、Goma未登录等问题并解决。还介绍了手动切换分支编译非master版本的流程。

1558

被折叠的 条评论
为什么被折叠?



