目录
7.2 java only allow in android builds.
7.3 ModuleNotFoundError: No module named 'importlib_metadata'
一、编译环境
1.1 操作系统:统信UOS专业版1050(64位) AMD
1.2 浏览器版本:chromium-110.0.5415.0
1.3 下载地址:chrome源码离线下载
由于源码下载比较大因此我们可以使用这样的方式下载。
wget http://commondatastorage.googleapis.com/chromium-browser-official/chromium-110.0.5415.0.tar.xz
1.4 配置科学上网,因为我们需要下载和更新一些东西因此需要科学上网才行。
二、下载编译工具
2.1 chromium的编译是借助编译工具进行这样可以方便。
cd ~
git clone https://chromium.googlesource.com/chromium/tools/depot_tool
2.2 配置环境变量
修改~/.bashrc,在最后添加以下内容。
export PATH="$PATH:${HOME}/depot_tools"
export DEPOT_TOOLS_UPDATE=0
三、安装编译环境
3.1 编译llvm
sudo apt install cmake
cd third_party/llvm
mkdir _build && cd _build
cmake -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_BUILD_TYPE="Release" -DCMAKE_INSTALL_PREFIX="../../llvm-build/Release+Asserts/" ../llvm -G Ninja -DLLVM_ENABLE_PROJECTS="clang;lld" -DLLVM_TARGETS_TO_BUILD="ARM;X86;AArch64" -DLLVM_INCLUDE_TOOLS=ON -DLLVM_BUILD_TOOLS=ON -DLLVM_INCLUDE_UTILS=ON -DLLVM_BUILD_UTILS=ON -DLLVM_INCLUDE_RUNTIMES=ON -DLLVM_BUILD_RUNTIME=ON -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON -DLLVM_ENABLE_ZLIB=ON -DLLVM_ENABLE_FFI=ON -DLLVM_ENABLE_RTTI=ON
ninja
ninja -v install
修改版本信息,cat third_party/llvm-build/Release+Asserts/cr_build_revision如果没有内容的话手动填写数据。
echo "llvmorg-16-init-8697-g60809cd2-1" > third_party/llvm-build/Release+Asserts/cr_build_revision
3.2 安装python3
sudo apt install python3
sudo apt install python3-pip
# 安装sysroot,需要联网!!
build/linux/sysroot_scripts/install-sysroot.py --arch=amd64
npm install importlib_metadata
3.3 下载nodejs
下载后解压到third_party/node/linux/
解压名字位node-linux-x64,注意目录名称不要错。
3.4 安装依赖
sudo apt install gperf
四. 配置编译参数
4.1 配置参数
执行命令
gn args out/default
填写一下内容:
is_component_build=false
rtc_build_opus=false
enable_nacl=false
clang_use_chrome_plugins=false
enable_js_type_check=false
#is_official_build=true
#blink_symbol_level=0
#use_vaapi=false
#enable_reading_list=false
#enable_webrtc=false
is_debug=false
host_os="linux"
host_cpu="x64"
4.2 编译前准备
gn gen out/default
五. 执行编译
编译命令
autoninja -C out/default/ chrome
六. 运行程序
./out/default/chrome --no-sandbox
七. 编译中遇到的问题
7.1 缺少llvm
编译llvm,修改cr_build_revision的内容
7.2 java only allow in android builds.
修改gn配置参数添加enable_js_type_check=false可以解决问题。
7.3 ModuleNotFoundError: No module named 'importlib_metadata'
安装python3模块
pip3 install importlib_metadata
7.4 检查依赖
gn check out/Release target
out/Release/gn check out/Release/ chrome/browser/extensions:extensions
7.5 单独编译某个模块
ninja -C out/Release chrome/test:unit_tests