在x86 docker容器中交叉编译chromium ARM版本

1、编译环境准备

1、因为使用公司的环境,申请的是48c128g的环境,此环境编译较快,大概时间需要一个半小时,操作系统有条件的话可以装成Ubuntu,我是在欧拉系统上装了一个Ubuntu的docker镜像,在docker容器中进行chrome源码编译。可以使用命令拉取对应的image。

 docker pull m.daocloud.io/docker.io/library/ubuntu:24.04

2、拉取chromium源码需要科学上网,执行下面的命令,先配置git和http代理。

 git config --global http.proxy http://x.x.x.x:1234 && 
 git config --global https.proxy http://x.x.x.x:1234 && 
 export HTTP_PROXY=http://x.x.x.x:1234 && 
 export HTTPS_PROXY=http://x.x.x.x:1234

2、代码拉取

3、拉取depot_tools工具。

mkdir /data/chrome -p &&
cd /data/chrome &&
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

4、拉取depot_tool完成之后,将depot_tool的路径设置到PATH环境变量,打开~/.bashrc文件,在文件最下面加入下面命令。加完之后执行source /root/.bashrc命令使其生效。

export PATH="$PATH:/data/chrome/depot_tools"

5、拉取chromium源码,如果不想拉取代码时间太长,只拉取最新的代码。以及想拉取全量代码,命令分别如下。

fetch --nohooks --no-history chromium  #最新代码
fetch --nohooks chromium  #全量代码,时间较慢,大概需要几个小时

3、代码编译

6、进入到chrome源码中,根据自己想要编译的版本,使用git checkout xxx切换到对应的版本.

cd /data/chrome/src &&
git checkout 136.0.7086.1

7、编译chrome源码需要将depot_tools项目切换到对应的版本才能正常编译,如何查看当前chrome源码版本对应的depots_tool的版本,如下图所示。拷贝圈出来的commit id,进入到depot_tools目录,执行git check e8523914418f7c71281df174be4778f36a357b12,切换到对应的版本。
在这里插入图片描述
8、为了防止编译源码的时候,脚本自动更新depot_tools项目,导致编译报错,需要执行下面的命令。

 export DEPOT_TOOLS_UPDATE=0

9、安装源码编译需要的依赖,因为我是在root用户下进行编译的,没有sudo命令,需要将./build/install-build-deps.py中的所有sudo命令前缀去掉。

./build/install-build-deps.sh --arm

10、安装交叉编译工具。

./build/linux/sysroot_scripts/install-sysroot.py --arch=arm &&
./build/linux/sysroot_scripts/install-sysroot.py --arch=arm64

11、拉取相关依赖的源代码

gclient sync && gclient runhooks

12、配置编译参数,下面的参数具体是什么意思可以自己查一下。

mkdir out/release
gn gen out/release --args='is_official_build=true 
                       strip_debug_info=true 
                       is_debug=false 
                       optimize_for_size=true 		
                       is_component_build=false 
                       symbol_level=0 
                       enable_nacl=false 
                       blink_symbol_level=0 
                       target_cpu="arm64"'

13、开始编译

autoninja -C out/release chrome

14、整个编译过程大概花了一个半小时,编译的结果如下图所示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值