使用GYP编译V8 4.8.47时报无icu.gypi构建规则错误如何解决
V8 4.8.47 GYP构建版本icu.gypi缺失问题解决步骤
你遇到的报错内容如下:
make: *** No rule to make target 'third_party/icu/icu.gypi' needed by 'out/Makefile.native'. Stop.
该错误核心原因是旧版本V8依赖的ICU等第三方组件没有随主仓库打包,且新版本构建工具默认不兼容GYP构建流程,按以下步骤操作即可完成编译:
- 第一步:回滚depot_tools到支持GYP的版本
V8 4.8.47是2016年发布的版本,新版depot_tools已移除GYP支持,需要先回滚到对应时间的版本,执行以下命令:git -C /你的depot_tools存放路径 checkout 933c97e
回滚完成后需要将depot_tools路径放在环境变量PATH的最优先级,避免调用其他版本的构建工具。 - 第二步:同步对应版本的全量依赖
在V8源码根目录执行gclient同步命令,自动拉取匹配4.8.47版本的所有第三方依赖(含ICU的gyp配置文件):gclient sync --revision 4.8.47
同步完成后third_party/icu/icu.gypi文件会自动生成。 - 第三步:手动生成GYP构建配置
执行以下命令生成对应架构的Makefile配置,x64架构可直接执行:build/gyp_v8 -Dtarget_arch=x64
如果需要编译32位版本,将参数中的x64替换为ia32即可。 - 第四步:执行编译命令
完成上述配置后再执行编译命令即可正常构建:make native
注意事项
- 不要直接使用git clone拉取的V8源码直接编译,旧版本必须通过gclient同步全量依赖才能正常构建
- 编译环境建议使用gcc 5.x或clang 3.6版本,过高版本的编译器会出现语法兼容类报错
内容的提问来源于stack exchange,提问作者Melab
相关产品推荐
相关产品推荐

