chromium(ubuntu版本)的编译步骤及运行

1.chromium的编译

下载完源码及各种工具后,就要开始编译了。编译的步骤也十分的简单。
首先,安装依赖库

$ cd ./chromium/src/build
$ ./install-build-deps.sh –no-chromeos-fonts

后面的参数“–no-chromeos-fonts”的作用是跳过字体的安装,因为我发现总是安装失败。而且这个过程也要用到,否则更新无法成功。
然后,确保depot_tools工具在你的PATH变量里,并检查一下ninja工具的是否是depot_tools提供的,方法是用which命令,例如:

$which ninja
$home/jj/chromium/depot_tools/ninja

可以看出我的环境是正确的。
再然后,执行如下命令:

$ cd ./chromium/src
$gn gen out/mybuild
$ninja -C out/mybuild

其中,chromium/src是我的源码目录。mybuid这个目录名你也可以随便换。
最后,就是漫长的等待了。需要说明的是这种方式编译出的是debug版的。
编译完成后,你可以按如下方式启动:

$cd ./chromium/src/out/mybuild
$./chrome

如果你启动后遇到如下错误

[17571:17571:0310/085809:FATAL:browser_main_loop.cc(216)] Running without the SUID sandbox! See https://chromium.googlesource.com/chromium/src/+/master/docs/linux_suid_sandbox_development.md for more information on developing with the sandbox on.

则需要设置一环境变量:

$ export CHROME_DEVEL_SANDBOX=/usr/local/sbin/chrome-devel-sandbox

成功启动后如下:
chromium(ubuntu版本)的编译步骤及运行_第1张图片

2.chromium的编译工具

chromium的编译依赖两种工具,一种用于生成ninja脚本,另一种就是ninja。
先说说ninja。大家应该比较熟悉make工具。编写一些makefile脚本,利用make工具就可以组织工程的编译。但makefile有一个缺点就是关注的事情太多,除了编译外还有环境变量配置等等,这些事情其实大多数情况下,只在工程第一次编译的时候有意义,编译一次之后如果仅修改一个cpp文件,再次编译时并不需要再次检查。这个缺点对于一个大工程是不利的,当你仅仅修改一个cpp文件后,执行make命令后,make工具会去检查很多东西才可以发现你改了一个cpp文件,这个过程可能要20s左右。为解决这个问题,google的工程师弄了ninja,ninja只关注一件事就是编译连接,其他什么都不管,这样时间就从20s下降到了小于1s(有人也许认为20s也不长,但仔细算一下还是很可怕的,180次编译就是一小时啊!!!,以我的经验,有时处理问题何止编译180次)。
但问题来了,ninja不管的事还是有意义的,尤其是工程第一次编译的时候,而且ninja所使用的build.ninja脚本靠手写也不是很方便。所以就产生了另一种工具专门去生产ninja所使用的脚本。这样的工具目前有gyp和gn两种,这种工具依赖于一种手写起来非常方便且阅读起来十分清晰的脚本,比如gyp使用的.gyp脚本,gn使用的BUILD.gn脚本。这样便可以省时省力的维护工程了。根据google的说明,linux上chromium逐步会使用gn去维护。上面的编译说明中就是使用gn的方法。

你可能感兴趣的:(浏览器,chromium浏览器相关,chromium,ubuntu)