Как вы компилируете V8 с помощью Visual Studio?

Я пытался скомпилировать V8. Я получил копию папки v8-master с GitHub, но не могу понять, как ее скомпилировать. Многие документы, которые я мог найти в Интернете, противоречат друг другу.

Из того, что я собрал, кажется, что мой лучший шанс получить его для компиляции (из различных методов, которые я нашел, хотя я не смог заставить ни один из них работать) - это создать файлы проекта, вызвав скрипт gyp_v8 (находится в папке сборки v8-master). Но это просто дает мне File "gyp_v8", line 86 print 'Error running GYP' SyntaxError: Missing parentheses in call to 'print'. Оттуда я попытался установить Gyp (поскольку, согласно документации, меня заставили поверить, что именно это вызывает ошибку). Это потребовало от меня установки depot_tools и выполнения gclient sync. Это не удалось с ошибкой Error: client not configured; see 'gclient config'. И gclient config терпит неудачу с erropr gclient.py: error: Inconsistency arguments. Use either --spec or one or 2 args.

Честно говоря, я потерялся в этот момент. Могу ли я просто использовать CMake или что-то в этом роде? Или, по крайней мере, учебник по сборке, который не предполагает, что у вас есть куча инструментов сборки, специфичных для Google?


person user112513312    schedule 02.02.2016    source источник


Ответы (2)


  1. Убедитесь, что Git установлен. рекомендуется git 2.2.1+.
  2. Временно отключите индексирование Windows.
  3. Установите «Распространяемый пакет Microsoft Visual C++ 2008»
  4. Запустить 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
person user3115937    schedule 02.02.2016
comment
В последней строке я получаю сообщение об ошибке gyp: Call to 'cd .. && python -c "import os; print os.getcwd()"' returned exit status 1 in v8\build\all.gyp (он показывает полный путь к файлу, но он длинный, поэтому я его сократил). - person user112513312; 02.02.2016
comment
Я обновил ответ. Мой Шеф использовал это решение. В v8\build появится all.sln - person user3115937; 05.02.2016

Ранее я собирал V8 из исходного кода для Visual Studio 2010, а затем для Visual Studio 2013. В обоих случаях это очень трудоемкие задачи. Однако для Visual Studio 2017 я обнаружил, что заголовки и готовые библиотеки доступны в NuGet. Мне больше не нужно было собирать из исходников.

person user3717478    schedule 20.11.2017