chromium(linux环境)指定版本下载和编译教程

   使用gquic,需要用到chromium的net/third_party/quiche包,因此研究了下chromium编译的流程。chromium编译过程遇到了不少坑,总结下步骤:

   前提:编译chromium的网络问题,每个人都有每个人的解决方案,解决后,接下来可以下载编译了(系统ubuntu)

1.首先我们阅读下官方文档(重要!!!)官网链接

2.大概步骤心中有数后,开始下面具体步骤吧:

 (a)确认下是否已经安装python,系统可能已经自带了多个python版本,查看python不同版本教程链接。

 (b)安装git,同时设置git全局配置参数。对于需要拉取指定版本chromium的,一定要增加全局参数如下:

git config --global core.autocrlf false
git config --global core.safecrlf true

   参数具体作用就是避免拉取chromium代码时,git帮你自动更改换行符,导致源文件被修改,无法切到指定版本(不同操作系统的换行符不一致,git默认会帮你转换)。

 (c)安装depot_tools工具:

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

   配置环境变量(也可以写depot_tools的绝对路径),此环境变量配置为临时配置,退出登录会失效,重新登录需要重新配置该环境变量:

export PATH="$PATH:${HOME}/depot_tools"

(d)拉取chromium代码:

mkdir ~/chromium && cd ~/chromium
fetch --nohooks chromium

    如果你只是想拉取最新的chromium代码,不需要切指定版本,推荐fetch --nohooks chromium --no-history ,加入--no-history能少下载接近一半的量,若需要特定版本chromium,必须全量拉取,否则切版本时错误较多,一个个修复相当麻烦。

(e)漫长的等待后~拉取完毕后,进入拉取时生成的src目录。

(f)开始切换指定版本,若使用master分支最新版本,则直接跳过此步骤:

git fetch origin --tags
git reset --hard 81.0.4008.1
gclient sync --force --nohooks --with_branch_heads

注意:官方提供的checkout方案切指定版本存在问题,执行完毕后仍是最新版本。若报这种"fatal: reference is not a tree"类似错误,解决方案进入报错的库目录,checkout至指定版本,详情见解决方案链接。

(g)然后开始安装构建依赖:

./build/install-build-deps.sh

(h)下载run the Chromium-specific hooks额外的二进制文件:

gclient runhooks

(I)使用gn产生.ninja文件,并使用ninja进行编译:

gn gen out/Default

   out目录src目录内。Default确保out目录内,可以任意取名。

ninja -C out/Default chrome

执行完毕,即可成功编译出chrome。

你可能感兴趣的:(quic(gquic研究之路))