一、依赖
注意是在Python2.7之下
Ubuntu18.04 install v8 的情况,仅限于网好,所以是在国外的服务器上跑完,在下载到本地https://gist.github.com/949mac/ab6f7a381103ed12cc774bcc11e4af49
# Add depot_tools
cd /usr/local
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
# 添加临时环境变量
export PATH=`pwd`/depot_tools:"$PATH"
# Build our v8 version
cd /usr/local/src
# 下载v8
fetch v8
cd v8
git checkout 7.5.288.23 # v8_version here
# 下载一些工具
gclient sync
# 编译
./build/install-build-deps.sh
gn gen out.gn/library --args='use_custom_libcxx=false is_component_build=true is_debug=false target_cpu="x64" use_goma=false goma_dir="None" v8_enable_backtrace=true v8_enable_disassembler=true v8_enable_object_print=true v8_enable_verify_heap=true'
ninja -C out.gn/library libv8.so
# Move files we need to /opt/v8
sudo mkdir -p /opt/v8/{lib,include}
sudo cp -v out.gn/library/lib*.so out.gn/library/*_blob.bin out.gn/library/icudtl.dat /opt/v8/lib/
sudo cp -vR include/* /opt/v8/include/
# Update shared libraries when needed
sudo ldconfig到 gclient sync(需要下载东西) 截止即可,后面的编译是本地操作即可。
二、环境变量
先添加系统环境变量(depot_tools是从服务器上clone的,否则太慢了)
gedit ~/.bashrc
export PATH=/usr/local/depot_tools:"$PATH"
这一步会添加例如 gn 等工具
三、本地编译
从git 上下载的情况
cd v8
./tools/dev/gm.py x64.release.check
gn gen out/x64.release
autoninja -C out/x64.release d8
./tools/run-tests.py --outdir=out/x64.release debugger intl mjsunit cctest message unittes
从服务器src/v8 中
./tools/dev/gm.py x64.release.check 会到最后一步
v8 测试方法
./tools/run-tests.py --outdir=out/x64.release debugger intl mjsunit cctest message unittests