• vs2015 编译google v8


    转自:http://blog.csdn.net/runningman2012/article/details/54692010

    系统Win10 64位,vs2015

    1. 

    git 下载depot_tools,git clone https://chromium.googlesource.com/chromium/tools/depot_tools

    注意:此过程需要设置代理,git代理,还需要在cmd中设置代理。

    a. git config --global http.proxy "127.0.0.1:8888"
    b. cmd里,set http_proxy 127.0.0.1:8888


    2. 

    设置环境变量,在path里添加depot_tools路径。

    设置好后,用gclient命令安装一些工具。

    之后,命令:fetch v8,可能由于网络原因会报错,没关系,再按照提示运行gclient sync, 此处还会报错,还是网络问题,也许是我的代理不好,多试几次。V8文件夹很大,总共一个1个多G。

    如果提示错误,下载不了的话,需要根据提示,自己手动下载缺少的文件,放到v8目录下third_party或tools里面。用git下载,到这里:https://dev.chromium.org/developers/how-tos/install-depot-tools找缺少的东西(别忘使用代理)。 这两个目录里的东西一定要补全,否则后面会保错。

    gclient sync 同步完成后,如果不是vs2013,是vs2015,gclient sync最后还会报错,需要在cmd里做如下设置:

    set DEPOT_TOOLS_WIN_TOOLCHAIN=0set GYP_MSVS_VERSION=2015 (最新的版本好像只支持vs2013和vs2015)

    然后再按照官方的步骤,设置 set GYP_GENERATORS=ninja

    3 .
    最后生成v8.sln和all.sln文件,用以下命令:
    python gypfilesgyp_v8.py -Dtarget_arch=ia32 -f msvs 或 
    python gypfilesgyp_v8.py -Dtarget_arch=x64 -f msvs


    动态链接库的话:
    python gypfilesgyp_v8.py -Dtarget_arch=ia32 -Dcomponent=shared_library -f msv或
    python gypfilesgyp_v8.py -Dtarget_arch=x64 -Dcomponent=shared_library -f msv

    这个过程很快。

    这里的python我装的是2.7.6(不是depot_tools里面的python)但是版本和depot_tools里的一样,我试过用depot_tools里的python生成sln,但是保错,不知道为什么。如果要装的是python 3.5的话可能会有问题,没有试。

    一切顺利的话,在v8/src 下生成v8.sln, 在v8/gypfiles里生成all.sln

    4. 

    最后用vs2015打开v8.sln, 编译release, win32。

    注意有几处错误,code_stub_assembler.h, pattern_rewriter.cc这两个文件好像是编码格式有问题,需要保存为unicode 1200格式。文件->高级保存选项。

    此外,还有一处报 >>右移操作错误,需要在报错的文件里#pragma disable掉。

    再编译就没有问题里。

    在v8/build文件夹里,生成Release,lib目录里一共是12个lib文件。

    这里倒是没有大的错误,只是有一些警告,但是都会当成错误来处理。


    x64有一些问题,是size_t to int的,看着很乱,不知道怎么弄,暂时不管了。

  • 相关阅读:
    使用MSXML2::IXMLDOMDocument2Ptr每次都要CreateInstance和load(xmlfile)吗?
    .Net程序安装打包的一些经验贡献
    感慨SQL2005中的数据挖掘算法
    COM客户端没法激活托管代码生成的COM Server的原因
    预感~=命中注定
    创业经理10大必备素质
    全局缓存管理工具
    XML DOM的结构概念图解哪里是Element,哪里是Attribute,哪里是Text
    用GetVolumeInformation得到的不是硬盘的序列号,不要再抄这样的错误好吗?
    站在生活的背后
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/8626569.html
Copyright © 2020-2023  润新知