Servo: Добавление документации для MSVC

Созданный на 8 сент. 2016  ·  37Комментарии  ·  Источник: servo/servo

В свете завершения # 12916 важно, чтобы участники знали, как настроить свои среды Windows для Servo.

Файлы для изменения: все, что есть документация (например, README.md)

cc @larsbergstrom

A-documentation C-assigned P-windows

Самый полезный комментарий

Спасибо! Я пробую это прямо сейчас, и вот что у меня есть для некоторых начальных шагов. Я пока пробовал только на одной нечистой виртуальной машине ...

Предварительная установка Windows MSVC

  • Установите Git для Windows (https://git-scm.com/download/win)
    Разрешите ему добавить git.exe в PATH (настройки по умолчанию для установщика в порядке)
  • Установите Visual Studio 2015 Community Edition (https://www.visualstudio.com/)
    Вы ДОЛЖНЫ добавить "Visual C ++" в список установленных компонентов. По умолчанию он не включен.
  • Установите Python для Windows (https://www.python.org/downloads/release/python-2711/)
    Установщик Windows x86-64 MSI в порядке.
    Вы должны изменить установку, чтобы установить функцию «Добавить python.exe в путь».
  • Установить virtualenv
    В обычной оболочке Windows (cmd.exe или «Командная строка» из меню «Пуск») выполните:
pip install virtualenv

Если это не сработает, вам может потребоваться перезагрузка, чтобы измененные настройки PATH вступили в силу.

Клонировать сервопривод

  • Откройте обычную оболочку Windows (cmd.exe или «Командную строку» из меню «Пуск»).
  • Сделайте клон Servo:
git clone https://github.com/servo/servo

Построить сервопривод

cd servo
mach.bat build -d

Все 37 Комментарий

Спасибо! Я пробую это прямо сейчас, и вот что у меня есть для некоторых начальных шагов. Я пока пробовал только на одной нечистой виртуальной машине ...

Предварительная установка Windows MSVC

  • Установите Git для Windows (https://git-scm.com/download/win)
    Разрешите ему добавить git.exe в PATH (настройки по умолчанию для установщика в порядке)
  • Установите Visual Studio 2015 Community Edition (https://www.visualstudio.com/)
    Вы ДОЛЖНЫ добавить "Visual C ++" в список установленных компонентов. По умолчанию он не включен.
  • Установите Python для Windows (https://www.python.org/downloads/release/python-2711/)
    Установщик Windows x86-64 MSI в порядке.
    Вы должны изменить установку, чтобы установить функцию «Добавить python.exe в путь».
  • Установить virtualenv
    В обычной оболочке Windows (cmd.exe или «Командная строка» из меню «Пуск») выполните:
pip install virtualenv

Если это не сработает, вам может потребоваться перезагрузка, чтобы измененные настройки PATH вступили в силу.

Клонировать сервопривод

  • Откройте обычную оболочку Windows (cmd.exe или «Командную строку» из меню «Пуск»).
  • Сделайте клон Servo:
git clone https://github.com/servo/servo

Построить сервопривод

cd servo
mach.bat build -d

Я пытаюсь это сделать прямо сейчас, но не удается скомпилировать mozjs_sys :

error: failed to run custom build command for `mozjs_sys v0.0.0 (https://github.com/servo/mozjs#7cd66925)`
process didn't exit successfully: `D:\Code\servo\target\release\build\mozjs_sys-661d4efe7c7ca939\build-script-build` (ex
it code: 101)
--- stderr
makefile.cargo:98: *** recipe commences before first target.  Stop.
thread 'main' panicked at 'assertion failed: result.success()', D:\Code\servo\.cargo\git\checkouts\mozjs-fa11ffc7d4f1cc2
d\master\build.rs:43
stack backtrace:
   0:     0x7ff7538547ea - std::rand::thread_rng::hf605c918a7eb7363
   1:     0x7ff753852f82 - std::rt::lang_start::haaae1186de9de8cb
   2:     0x7ff75385392d - std::panicking::rust_panic_with_hook::hb1322e5f2588b4db
   3:     0x7ff753841be3 - __ImageBase
   4:     0x7ff7538439c0 - __ImageBase
   5:     0x7ff7538572e1 - _rust_maybe_catch_panic
   6:     0x7ff7538529ba - std::rt::lang_start::haaae1186de9de8cb
   7:     0x7ff75385bfa8 - __scrt_common_main_seh
                        at f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253
   8:     0x7ffff0cf8363 - BaseThreadInitThunk

_Edit: _ Я забыл упомянуть, что я делаю сборку релиза ( mach.bat build -r ), если это имеет значение.
_Редактировать 2: _ Тот же результат с mach.bat build -d

Обратите внимание, что недостаточно просто иметь python.exe в моем PATH , мне также нужно было убедиться, что папка scripts была в моем PATH чтобы я мог запустите pip, чтобы установить virtualenv, а для mach - увидеть virtualenv.

Также я разочарован тем, что нет mach.ps .

Выбор опции «Добавить в ПУТЬ» в установщике Python добавил как корневой каталог установки Python, так и каталог scripts . Мне просто нужно было выйти и снова войти в Windows, чтобы эти изменения вступили в силу.

Finished debug [unoptimized + debuginfo] target(s) in 2395.9 secs

Я думаю, это сработало, вроде как. Попытка фактически запустить результат ...

Servo exited with return value -1073741515 что означает STATUS_DLL_NOT_FOUND . Я считаю, что отсутствующая dll - это freetype.dll . Хммм, возможно, на самом деле это было из-за моего .cargo/config который указывает переопределение сценария сборки для freetype, чтобы он действительно работал нормально, и это может конфликтовать с freetype сервопривода.

Хорошо, после того, как я закомментировал мой .cargo/config , сервопривод теперь действительно работает, а затем совершенно бесполезен. Загрузка любой страницы получает заголовок, но сама страница полностью пуста.

Кроме того, он пожирает 2 ядра процессора, при этом ничего не делая.

Если я закрою сервопривод, процесс продолжится и начнет поглощать _все_ ядра моего процессора.

@ retep998 Вам нужно указать URL.

@ Coder206 Я сделал cmd /c mach.bat run -d http://www.purple.com . Этого мало?

@ retep998 Это должно

@ retep998 Я подозреваю, что это из-за настроек фиктивных шрифтов в gfx.

OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.10586 N/A Build 10586

AMD Radeon R9 380 с новейшими драйверами с полной поддержкой OpenGL 4.5.

@ retep998 Спасибо, похоже, это общая проблема Windows или, возможно, просто Windows 10.

Посмотрев на makefile.cargo:98 в mosjs-sys я нашел строку

$(message You must either have the Native Win32 python installed in C:/python27, or set NATIVE_WIN32_PYTHON to point to the appropriate python.exe.)

который, к сожалению, никогда не отображается при сборке, потому что он попадает в stdout вместо stderr, поэтому он не будет перенаправлен Cargo.

Установка NATIVE_WIN32_PYTHON фактически решила проблему: smiley:
Теперь я также нахожусь в точке, где запущенный сервопривод показывает пустое белое окно с правильным заголовком, но ничего больше. Я использую Windows 10 Домашняя.

Спасибо всем! Похоже, что инструкции верны (хотя, возможно, требуется исправление проблемы @Boddlnagg ), достаточное для размещения на веб-сайте.

Тем не менее, как заметили @ retep998 и @ Coder206 и я могу подтвердить, сборка MSVC в настоящее время не загружается полностью и пуста. Мы должны это изучить :-)

@larsbergstrom Я думаю, у меня были проблемы с местом для хранения на моей виртуальной

Что касается дискового пространства ... для простой сборки dev, без тестов и без сборки выпуска, и без учета пространства, занятого в грузовом кеше ...

Так что я бы сказал, что минимум 10 ГБ свободного места.

@ retep998 Спасибо за это. Думаю, именно поэтому у меня возникли проблемы с компиляцией (например, компиляция «скрипта» не удалась).

Да, я думаю, что «предупреждение о нехватке места на диске» (как отдельная проблема) может оказаться полезным. Прямо сейчас, когда у нас заканчивается пространство, сборка скрипта завершается неудачно, что является непрозрачным и нетривиальным для восстановления способом - обычно вам нужно выполнить чистую сборку.

@larsbergstrom Успех на чистой машине с Windows 10

Вам не нужна Visual Studio.
Вы можете получить Visual C ++ как отдельный отсюда:
http://landinghub.visualstudio.com/visual-cpp-build-tools
Использование варианта установки по умолчанию

@Jayflux Мне это нравится намного больше, это экономит много места

Сборка для меня не удалась
https://pastebin.mozilla.org/8909561

OS Name Microsoft Windows 10 Pro
Version 10.0.10586 Build 10586
<vlad> Jayflux: you want https://github.com/vvuk/mozjs/commit/f9b707cbeb6ad653b8afb8e457b0b2d609ec66ef

При использовании вилки Влада я получаю это
https://pastebin.mozilla.org/8909575

Тестирование на cmd

  Compiling miniz-sys v0.1.7
   Compiling unreachable v0.1.1
   Compiling ordered-float v0.2.3
   Compiling quickersort v2.1.0
   Compiling openssl v0.7.14
Build failed, waiting for other jobs to finish...
error: failed to run custom build command for `mozjs_sys v0.0.0 (https://github.com/servo/mozjs#87c47526)`
process didn't exit successfully: `C:\Users\Jason\workspace\servo\target\debug\build\mozjs_sys-661d4efe7c7ca939\build-script-build` (exit code: 101)
--- stdout
[[ /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure -ot /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure.in ]] && touch /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure || true
[[ /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure -ot /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure.in ]] && touch /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure || true
! [[ /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure.in -ot /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure ]] && touch /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure || true
! [[ /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure.in -ot /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure ]] && touch /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/old-configure || true
if [[ /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure -nt C:\Users\Jason\workspace\servo\target\debug\build\mozjs_sys-661d4efe7c7ca939\out/config.status ]] ; then \
  cd C:\Users\Jason\workspace\servo\target\debug\build\mozjs_sys-661d4efe7c7ca939\out && \
  PYTHON="python" MOZ_TOOLS="" \
  CC="gcc" CPP="gcc -E" CXX="g++" AR="ar" \
  /c/Users/Jason/workspace/servo/.cargo/git/checkouts/mozjs-fa11ffc7d4f1cc2d/master/mozjs/js/src/configure --disable-jemalloc --disable-js-shell --disable-tests --without-intl-api --build-backends=RecursiveMake --disable-shared-js || (cat config.log && exit 1) ; \
fi
makefile.cargo:120: recipe for target 'maybe-configure' failed

--- stderr
C:/Users/Jason/AppData/Local/Temp/make7000-5.sh: line 2: cd: C:UsersJasonworkspaceservotargetdebugbuildmozjs_sys-661d4efe7c7ca939out: No such file or directory
cat: config.log: No such file or directory
mozmake: *** [maybe-configure] Error 1
thread 'main' panicked at 'assertion failed: result.success()', C:\Users\Jason\workspace\servo\.cargo\git\checkouts\mozjs-fa11ffc7d4f1cc2d\master\build.rs:43
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Build FAILED in 0:05:56

Можете ли вы сделать set PATH и вставить сюда результаты? Меня беспокоит, что есть другой, более злой питон, который первым в вашем PATH . Мой выглядит так:

C:\Users\larsberg>set PATH
Path=C:\Python27\;C:\Python27\Scripts;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Git\cmd;C:\Program Files (x86)\WiX Toolset v3.10\bin
C:\Users\Jason\workspace\servo>set PATH
Path=C:\Program Files (x86)\MSBuild\14.0\bin\amd64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Windows\Microsoft.NET\Framework64\;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Windows Kits\10\bin\x86;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\;C:\Python27\;C:\Python27\Scripts;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files\nodejs\;C:\ProgramData\chocolatey\bin;C:\Program Files\Oracle\VirtualBox;C:\Program Files\Sublime Text 3;C:\Program Files (x86)\Skype\Phone\;C:\HashiCorp\Vagrant\bin;C:\Program Files\Git\cmd;C:\Users\Jason\AppData\Roaming\npm;C:\Program Files (x86)\Nmap
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

NATIVE_WIN32_PYTHON не помогло мне

Инструкции у меня тоже сработали.

@ Coder206 Есть ли открытая проблема с отображением белого экрана вместо содержимого веб-сайта? У меня такая же проблема с Windows 10 Educational (версия 10.0.10586) с Intel HD Graphics 4000.

@aochagavia Нет, для этого нет проблем

Стоит ли создать новый?

Я думаю, это хорошая идея. Спасибо за это @aochagavia!

в mozjs makefile.cargo есть строка: SRC_DIR = $(shell pwd) Интересно, если для вас pwd дает c: ......, а для меня он дает c: / ....

Для меня %MOZTOOLS_PATH%\pwd дает /c/proj/r ; но это с локальным MOZTOOLS_PATH. Вы должны увидеть, что делает mach для установки $ PATH / $ MOZTOOLS_PATH и какой pwd он находит.

@vlad есть ли какие-нибудь шаги, чтобы выяснить, что мне дает pwd?
Эти команды не запускаются в консоли

Нужно ли мне устанавливать переменную env пути moztools?

@vvuk вот результаты (моя хост-машина, а не виртуальная машина)
cmder:

C:\Users\Jason\workspace\servo (master)
λ .servo\msvc-dependencies\moztools\bin\pwd.exe
/c/Users/Jason/workspace/servo

CMD

C:\Users\Jason\workspace\servo>.servo\msvc-dependencies\moztools\bin\pwd.exe
/c/Users/Jason/workspace/servo

C:\Users\Jason\workspace\servo>

Также...
Не знаю, помогает ли это, но я заметил, что вы добавили здесь путь к python:
https://github.com/servo/mozjs/commit/7ba7cfa262dd6864d581855bad47c28d4ad97970#diff -9080a05d9a2f1078a5790475b50fdb37L96

Однако моя установка python:
C:\Python27 с заглавной буквой P

Посмотрев на makefile. груз: 98 в mosjs-sys нашел строчку

$ (сообщение Вы должны либо установить собственный питон Win32 в C: / python27, либо установить NATIVE_WIN32_PYTHON так, чтобы он указывал на соответствующий python.exe.)
который, к сожалению, никогда не отображается при сборке, потому что он попадает в stdout вместо stderr, поэтому он не будет перенаправлен Cargo.

Установка NATIVE_WIN32_PYTHON фактически решила проблему: смайлик:
Теперь я также нахожусь в точке, где запущенный сервопривод показывает пустое белое окно с правильным заголовком, но ничего больше. Я использую Windows 10 Домашняя.

@Boddlnagg Я сделал то же самое, но это все еще меня подводит: sob:: sob:
Похоже, он жестко запрограммирован на c: \ python27, что для некоторых не удастся, так как это заглавная буква P при установке (или, по крайней мере, для меня это было)

@Jayflux Вы установили его на путь, содержащий python.exe или на самом деле, чтобы указать на сам python.exe ? Должно быть последнее.
И я не знаю, почему верхний регистр P должен иметь значение здесь, поскольку (a) это значение по умолчанию и (b) имена файлов должны быть нечувствительными к регистру в Windows ...

@Boddlnagg я указал непосредственно на сам python.exe, и я все еще получаю ту же ошибку
Хорошо, не знал о нечувствительности к регистру, полезно знать

Итак, если https://github.com/servo/servo/issues/13272 - это что-то, что нужно сделать .. Инструменты сборки Visual C ++ дают разные результаты по сравнению с полной сборкой Visual Studio

Я собираюсь попробовать сделать это еще раз, удалив инструменты сборки Visual C ++ и вместо этого используя полную установку Visual Studio, чтобы посмотреть, имеет ли это какое-либо отношение к этому.

@larsbergstrom @vvuk
Оказывается, проблема заключалась в том, что я использовал http://landinghub.visualstudio.com/visual-cpp-build-tools вместо установки Visual Studio.

У меня теперь белый экран, как и у всех

Была ли эта страница полезной?
0 / 5 - 0 рейтинги