2016年6月7日 windows环境下编译V8

1.     depot_tools 工具需要翻墙才能下载。下载好后要将 depot_tools 以及 depot_tools/python276_bin路径添加到环境变量PATH内。方便后面调用glient、fetch、python等命令。

2.     V8源码下载可通过到github上git下来,或者直接调用fetchv8下载源码。

3.     注册环境变量,我这里使用vs2013编译,如果有需要可改成2015.

       DEPOT_TOOLS_WIN_TOOLCHAIN= 0

       GYP_MSVS_VERSION= 2013

4.     调用gclient sync命令下载依赖包时,需要.gclient文件。通过git下载v8时是没有这个文件的。通过fetch v8可自动生成这个文件。手动创建亦可。文件内容如下

       solutions= [

         {

           "managed": False,

           "name": "v8",

           "url":"https://chromium.googlesource.com/v8/v8.git",

           "custom_deps": {},

           "deps_file": "DEPS",

           "safesync_url": "",

         },

       ]

       将这个文件放在v8的同级目录

5.     gclient sync命令由于需要访问谷歌服务器,需要翻墙。下载这些文件需要花费大量时间,要有耐心。如果土豪专线VPN可无视。

6.     gclient sync 执行完后,默认在v8/gypfiles路径下生成all.sln。该项目文件默认生成静态库,如果需要动态库,请执行 python gyp_v8 -Dcomponent=shared_library。重新生成all.sln

7.     将depot_tools/python276_bin目录拷贝到v8/third_party,并改名为python_26。否则编译失败。

8.     vs2013 打开all.sln 编译时会报一些错误,我们一个一个的解决。

a)     错误       16    error C2220: 警告被视为错误 - 没有生成“object”文件“。

要解决这个问题只需要将v8_base_0、v8_base_1、v8_base_2、v8_base_3这个几个项目的“将警告视为错误”属性设置为否即可。貌似是中文版vs2013导致的。

b)     mksnapshot 编译失败,提示fatal error LNK1169: 找到一个或多个多重定义的符号。

注释掉 v8\src\interpreter\ bytecode-register-optimizer.cc文件第11行。

//const uint32_tBytecodeRegisterOptimizer::kInvalidEquivalenceId;

该静态成员常量已在头文件中初始化,注释掉该行即可。具体原因请大神告知。

9.     编译好后,可在v8/build/debug目录下找到v8.dll。v8.lib在v8/build/debug/lib。 

到这里,小伙伴可以尽情的玩耍了。大笑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值