Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用VisualStudio编译V8?_C++_Visual Studio_V8_Gyp - Fatal编程技术网

C++ 如何使用VisualStudio编译V8?

C++ 如何使用VisualStudio编译V8?,c++,visual-studio,v8,gyp,C++,Visual Studio,V8,Gyp,我一直在尝试编译V8。我从GitHub获得了v8主文件夹的副本,但我不知道如何编译它。我在网上找到的很多文档都是相互矛盾的 从我收集的资料来看,似乎我要编译它的最佳机会(在我找到的各种方法中,尽管我无法让它们中的任何一种工作),就是通过调用gyp_v8脚本(位于v8 master的build文件夹中)来创建项目文件。但它只给了我文件“gyp_v8”,第86行打印“运行gyp时出错”语法错误:调用“print”时缺少括号。从那里,我尝试安装Gyp(因为根据文档,我相信这就是导致错误的原因)。这需要

我一直在尝试编译V8。我从GitHub获得了v8主文件夹的副本,但我不知道如何编译它。我在网上找到的很多文档都是相互矛盾的

从我收集的资料来看,似乎我要编译它的最佳机会(在我找到的各种方法中,尽管我无法让它们中的任何一种工作),就是通过调用gyp_v8脚本(位于v8 master的build文件夹中)来创建项目文件。但它只给了我
文件“gyp_v8”,第86行
打印“运行gyp时出错”
语法错误:调用“print”时缺少括号
。从那里,我尝试安装Gyp(因为根据文档,我相信这就是导致错误的原因)。这需要我安装depot_工具并执行
gclient sync
。失败,错误为:客户端未配置;请参阅“gclient config”
。并且
gclient config
失败,错误为erropr
gclient.py:error:参数不一致。使用--spec或一个或两个参数

老实说,我在这一点上迷路了。我有没有办法只用CMake什么的?或者至少是一个构建教程,它不假设你有一堆特定于谷歌的构建工具

  • 确认已安装Git。建议使用git 2.2.1+
  • 暂时禁用Windows索引
  • 安装“微软Visual C++ 2008可重分发包”
  • 以管理员身份运行bat文件
  • Bat文件:

    @echo on
    
    CD /D %~dp0
    SET DEPOT_TOOLS_WIN_TOOLCHAIN=0
    SET DEPOT_TOOLS=%CD%/depot_tools
    SET PYTHONHOME=%DEPOT_TOOLS%/python276_bin
    SET PYTHONPATH=%CD%/v8/build/gyp
    SET PATH=%DEPOT_TOOLS%;%PYTHONHOME%;%PATH%
    
    SET GYP_DEFINES=target_arch=x64
    REM SET GYP_DEFINES=target_arch=x64 component=shared_library v8_use_snapshot=false
    REM About GYP_DEFINES: https://github.com/v8/v8/wiki/Building-with-Gyp
    
    IF EXIST %DEPOT_TOOLS% (
      ECHO Updating depot_tools
      CD %DEPOT_TOOLS%
      CALL git pull
      CD ..
    ) ELSE (
      ECHO Getting depot_tools
      CALL git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
    )
    
    CALL gclient
    CALL gclient config https://chromium.googlesource.com/v8/v8.git
    CALL gclient sync
    

    我之前已经从源代码为VisualStudio2010构建了V8,然后又为VisualStudio2013构建了V8。在这两种情况下都是非常耗时的任务。然而,对于Visual Studio 2017,我发现可以从NuGet获得标题和预构建库。我不再需要从源代码构建。

    在最后一行,我得到了错误
    gyp:Call to'cd..&&python-c“import os;print os.getcwd()”在v8\build\all.gyp中返回了退出状态1(它显示了完整的文件路径,但很长,所以我缩短了它)。我更新了答案。我的上司使用了这个解决方案。在v8中\build将显示all.sln