unbuntu下载编译chromium
第一步:配置安装depot_tools
sudo apt install git
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH=depot_tools path:$PATH:
第二步:下载源码
方法1:
时间长
fetch chromium
方法2:
只下载最新的代码,没有历史记录
fetch --nohooks --no-history chromium
注:如果在下载过程中发生了异常(比较常见的是断网,因为v*n),可以在/chromium目录下执行:
gclient sync --nohooks --no-history有时可以继续同步,有时不行
方法3:
快速下载代码包(tarball)
http://chromium-browser-source.commondatastorage.googleapis.com/chromium_tarball.html
方法4:
分支的下载请参考
https://www.chromium.org/developers/how-tos/get-the-code/working-with-release-branches
方法5:
# 获得所有发布tag的信息。
git fetch --tags
# 根据37.0.2062.103版本建立一个你自己的分支
git checkout -b your_release_branch 37.0.2062.103
// 同步所有相关工程代码
gclient sync --with_branch_heads --jobs 16方法6:
.gclient
[plain] view plain copy
1. solutions = [
2. {
3. "managed": True,
4. "name": "src",
5. "url": "https://chromium.googlesource.com/chromium/[email protected]",
6. "custom_deps": {
7. "src/content/test/data/layout_tests/LayoutTests": None,
8. "src/chrome/tools/test/reference_build/chrome_win": None,
9. "src/chrome_frame/tools/test/reference_build/chrome_win":None,
10. "src/chrome/tools/test/reference_build/chrome_linux":None,
11. "src/chrome/tools/test/reference_build/chrome_mac": None,
12. "src/third_party/hunspell_dictionaries": None,
13. },
14. "deps_file": ".DEPS.git",
15. "safesync_url": "",
16. },
17. ]
18. target_os = ['android']
第三步:编译
首先,安装依赖库
$ cd src
$ ./build/install-build-deps.sh --no-chromeos-fonts
后面的参数“–no-chromeos-fonts”的作用是跳过字体的安装,因为我发现总是安装失败。而且这个过程也要用到v*n,否则更新无法成功。
After a recent update, ttf-mscorefonts-installer prompted me to accept its licenseagreement.
Page Down到底部,Tab 到ok,然后Enter
然后:
gclient runhooks
runhooks是在同步完代码之后执行的。
根据DEPS的文件的描述,执行一些获取代码之后的工作,其中包括生成平台可编译的工程。
然后:
确保depot_tools工具在你的PATH变量里,并检查一下ninja工具的是否是depot_tools提供的,方法是用which命令,例如:
$which ninja$XX/ninja
可以看出我的环境是正确的。
再然后,执行如下命令:
sudo apt install multimon
然后:安装gn
gn gen out/Releaseninja -C out/Release chrome
然后:生成ninja
$gn gen out/default
先用gn gen指定在out/目录里面生成ninja。
然后:编译
$ninja -C out/default其中,chromium/src是我的源码目录。
需要说明的是这种方式编译出的是debug版的。
$cd ./chromium/src/out/default
$./chrome
如果你启动后遇到如下错误
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