编译V8引擎

本文介绍了如何在Linux环境下编译V8引擎以加速Android应用启动,通过编译静态库解决启动时间长的问题。详细步骤包括安装编译环境、下载与配置depot_tools、定制.gclient文件、处理编译错误,以及解决编译生成静态库时遇到的问题。在编译过程中可能会遇到系统库缺失,如libstdc++.so.6,需要通过yum安装。最终通过修改ninja编译命令参数文件,成功生成libplatform.a静态库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于项目项目中最近用到v8引擎,项目由sparkmonkey切换到v8后,性能有了较大的提升,不过美中不足的是,启动时间较长,查看v8相关的文档,可以使用snapshot快照技术加快启动速度,因此觉得自己编译v8,加速启动。

在编译过程中遇到各种问题,首先说编译环境,项目需求是在android中使用v8快照,一般生成android平台的v8链接库有三种形式,在windows环境编译,在windows环境下使用cgwin编译,在linux环境下编译。

  • 使用window环境编译

    v8最新版本会强制绑定到vs2017,就算指定仅编译android平台也不能拿避免,没有装vs2017,目前项目使用vs2015,升级设计比较多的人,故舍弃此方案。(可能有其他参数避免这种绑定,不了解暂时没有深究)

  • 使用window环境下cgwin编译

    在cgwin环境下前期正常,但在相关脚本的调用中,遇到一个路径中斜杠”\”和反斜杠”/”的报错,由于关联脚本是从远程库自动下载,无法本地修改,如果要一一修改,需要将脚本加入到本地索引中,因此也没有使用这种方案。

  • 使用linux环境编译

    使用linux环境编译目前遇到问题最少,基本都是自动脚本执行完成,linux中还缺少部分系统库,手动添加一下就好。

开始编译v8,分为三个部分,第一个准备环境,linux使用虚拟机wmware,装centos最新稳定版本,注意硬盘要分配30G以上,因为要下载ndk以及一大堆第三方代码,建议留足编译空间。

  • 前期准备

    装完centos后,先需要安装gcc gcc-c++

    yum install -y gcc
    yum install -y gcc-c++

    安装depot_tools,主要用来下载脚本,有两个工具 fetch,gclient

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

    修改系统环境变量,将depot_tools加入到系统命令当中

    vim /etc/profile
    ...
    export PATH=/*(目录)/depot_tools:$PATH

    编译可以使用fetch v8来默认编译,这条命令相当于先建立一个默认的.gclient配置描述文件,然后再指向gclient sync下载相关依赖项目,我们可以采用自己建立.gclient文件定制下载选项

    gclient config https://github.com/v8/v8.git

    这个时候,在当前工作目录下会生成一个.gclient文件,使用编辑器打开它

    solutions = [
      { "name"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值