Servo: Agregar documentación para MSVC

Creado en 8 sept. 2016  ·  37Comentarios  ·  Fuente: servo/servo

A la luz de la finalización del # 12916, es importante que los colaboradores sepan cómo configurar sus entornos Windows para Servo.

Archivos para modificar: cualquier cosa con documentación (es decir, README.md)

cc @larsbergstrom

A-documentation C-assigned P-windows

Comentario más útil

¡Gracias! Estoy probando esto ahora mismo, y esto es lo que tengo para algunos pasos iniciales. Sin embargo, solo lo he probado en una máquina virtual no limpia hasta ahora ...

Configuración previa de Windows MSVC

  • Instale Git para Windows (https://git-scm.com/download/win)
    DEBE permitirle agregar git.exe a la RUTA (la configuración predeterminada para el instalador está bien)
  • Instale Visual Studio 2015 Community Edition (https://www.visualstudio.com/)
    DEBE agregar "Visual C ++" a la lista de componentes instalados. No está activado de forma predeterminada.
  • Instale Python para Windows (https://www.python.org/downloads/release/python-2711/)
    El instalador MSI de Windows x86-64 está bien.
    Debe cambiar la instalación para instalar la función "Agregar python.exe a la ruta".
  • Instalar virtualenv
    En un Shell de Windows normal (cmd.exe o "Símbolo del sistema" en el menú de inicio), haga lo siguiente:
pip install virtualenv

Si esto no funciona, es posible que deba reiniciar para que la configuración de PATH modificada surta efecto.

Servo de clonación

  • Abra un shell normal de Windows (cmd.exe o "Símbolo del sistema" en el menú de inicio)
  • Haz un clon de Servo:
git clone https://github.com/servo/servo

Construir servo

cd servo
mach.bat build -d

Todos 37 comentarios

¡Gracias! Estoy probando esto ahora mismo, y esto es lo que tengo para algunos pasos iniciales. Sin embargo, solo lo he probado en una máquina virtual no limpia hasta ahora ...

Configuración previa de Windows MSVC

  • Instale Git para Windows (https://git-scm.com/download/win)
    DEBE permitirle agregar git.exe a la RUTA (la configuración predeterminada para el instalador está bien)
  • Instale Visual Studio 2015 Community Edition (https://www.visualstudio.com/)
    DEBE agregar "Visual C ++" a la lista de componentes instalados. No está activado de forma predeterminada.
  • Instale Python para Windows (https://www.python.org/downloads/release/python-2711/)
    El instalador MSI de Windows x86-64 está bien.
    Debe cambiar la instalación para instalar la función "Agregar python.exe a la ruta".
  • Instalar virtualenv
    En un Shell de Windows normal (cmd.exe o "Símbolo del sistema" en el menú de inicio), haga lo siguiente:
pip install virtualenv

Si esto no funciona, es posible que deba reiniciar para que la configuración de PATH modificada surta efecto.

Servo de clonación

  • Abra un shell normal de Windows (cmd.exe o "Símbolo del sistema" en el menú de inicio)
  • Haz un clon de Servo:
git clone https://github.com/servo/servo

Construir servo

cd servo
mach.bat build -d

Estoy intentando esto ahora mismo, pero no puedo compilar 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

_Editar: _ Olvidé mencionar que estoy haciendo una versión de lanzamiento ( mach.bat build -r ), en caso de que eso importe.
_Editar 2: _ Mismo resultado con mach.bat build -d

Tenga en cuenta que no es suficiente tener simplemente python.exe en mi PATH , también tuve que asegurarme de que la carpeta scripts estuviera en mi PATH para poder ejecute pip para instalar virtualenv y para que mach vea virtualenv.

También me decepciona que no haya mach.ps .

Al seleccionar la opción "Agregar a RUTA" en el instalador de Python, se agregaron tanto el directorio raíz de la instalación de Python como el directorio scripts . Solo necesitaba cerrar la sesión y volver a iniciar sesión en Windows para que estos cambios surtan efecto.

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

Supongo que funcionó, más o menos. Intentando ejecutar realmente el resultado ...

Servo exited with return value -1073741515 que significa STATUS_DLL_NOT_FOUND . Creo que la dll que falta es freetype.dll . Hmmm, en realidad podría haber sido debido a mi .cargo/config que especifica una anulación de script de compilación para freetype para que realmente funcione normalmente, y podría estar en conflicto con el freetype del servo.

De acuerdo, después de comentar mi .cargo/config , el servo ahora funciona y luego es totalmente inútil. Al cargar cualquier página se obtiene el título, pero la página en sí está totalmente en blanco.

Además, se sienta a comer 2 núcleos de CPU sin hacer absolutamente nada.

Si cierro el servo, el proceso continúa ejecutándose y comienza a comerse _todos_ los núcleos de mi CPU.

@ retep998 Debe especificar una URL.

@ Coder206 Hice cmd /c mach.bat run -d http://www.purple.com . ¿No es suficiente?

@ retep998 Eso debería

@ retep998 Sospecho que esto se debe a la configuración de fuente ficticia en gfx.

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

AMD Radeon R9 380 con controladores actualizados con compatibilidad total con OpenGL 4.5.

@ retep998 Gracias, esto parece ser un problema general de Windows o quizás solo de Windows 10.

Al mirar makefile.cargo:98 en mosjs-sys encontré la línea

$(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.)

que desafortunadamente nunca se muestra cuando se construye, porque termina en stdout en lugar de stderr, por lo que no será reenviado por cargo.

Al configurar NATIVE_WIN32_PYTHON se solucionó el problema: smiley:
Ahora también estoy en el punto en el que el servo en ejecución muestra una ventana blanca vacía con el título correcto, pero nada más. Estoy ejecutando Windows 10 Home.

¡Gracias a todos! Parece que las instrucciones son correctas (aunque es posible que necesiten una solución para el problema de @Boddlnagg ) lo suficiente como para publicarlas en el sitio web.

Dicho esto, como @ retep998 y @ Coder206 han notado y puedo confirmar, la compilación de MSVC actualmente no completa la carga y está en blanco. Tendremos que investigar eso :-)

@larsbergstrom Creo que tuve problemas con el espacio de almacenamiento en mi VM. ¿Cuáles son sus pensamientos (o los de alguien) acerca de agregar un espacio de disco recomendado?

Con respecto al espacio en disco ... para una compilación de desarrollo simple, sin pruebas y sin compilación de lanzamiento, y sin contar el espacio ocupado en el caché de carga ...

Así que yo diría que al menos 10 GB de espacio libre.

@ retep998 Gracias por hacer esto. Creo que esta es la razón por la que tuve problemas al compilar (es decir, no se pudo compilar el "script").

Sí, creo que una "advertencia de poco espacio en disco" (como tema aparte) podría valer la pena. En este momento, cuando nos quedamos sin espacio, la compilación del script falla de una manera que es opaca y no trivial para recuperarse; por lo general, debe hacer una compilación limpia.

@larsbergstrom Éxito en una máquina limpia con Windows 10

No necesitas Visual Studio.
Puede obtener Visual C ++ como independiente desde aquí:
http://landinghub.visualstudio.com/visual-cpp-build-tools
Usando la opción de instalación predeterminada

@Jayflux Me gusta mucho más, ahorra mucho espacio

Construye fallando para mi
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

Cuando uso el tenedor de Vlad, obtengo esto
https://pastebin.mozilla.org/8909575

Prueba en 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

¿Puedes hacer set PATH y pegar los resultados aquí? Me preocupa que haya otra pitón más malvada que sea la primera en su PATH . El mío se parece a:

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 no me ha funcionado

Las instrucciones también funcionaron para mí.

@ Coder206 ¿Existe un problema abierto para el problema de ver una pantalla en blanco en lugar del contenido del sitio web? Estoy experimentando el mismo problema en Windows 10 Educational (versión 10.0.10586) con Intel HD Graphics 4000.

@aochagavia No, no hay problema para eso

¿Debería crear uno nuevo?

Creo que sería una buena idea. ¡Gracias por hacer esto @aochagavia!

en mozjs makefile.cargo, hay una línea: SRC_DIR = $(shell pwd) Me pregunto si para ti, pwd está dando c: ......, y para mí, está dando c: / ....

Para mí %MOZTOOLS_PATH%\pwd da /c/proj/r ; pero eso es con un MOZTOOLS_PATH local. Debería ver lo que hace mach para configurar $ PATH / $ MOZTOOLS_PATH y qué pwd encuentra.

@vlad, ¿hay algún paso para averiguar qué me está dando pwd?
Estos comandos no se ejecutan en la consola

¿Necesito configurar la variable env de rutas de moztools?

@vvuk aquí están los resultados (mi máquina host, no VM)
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>

También...
No sé si esto ayuda, pero he notado que ha agregado una ruta a Python aquí:
https://github.com/servo/mozjs/commit/7ba7cfa262dd6864d581855bad47c28d4ad97970#diff -9080a05d9a2f1078a5790475b50fdb37L96

Sin embargo, mi instalación de Python es:
C:\Python27 con una P mayúscula

Mirando makefile. cargo: 98 en mosjs-sys encontré la línea

$ (mensaje Debe tener instalado el Python nativo Win32 en C: / python27, o configurar NATIVE_WIN32_PYTHON para que apunte al python.exe apropiado).
que desafortunadamente nunca se muestra cuando se construye, porque termina en stdout en lugar de stderr, por lo que no será reenviado por cargo.

Configurar NATIVE_WIN32_PYTHON luego solucionó el problema: smiley:
Ahora también estoy en el punto en el que el servo en ejecución muestra una ventana blanca vacía con el título correcto, pero nada más. Estoy ejecutando Windows 10 Home.

@Boddlnagg Hice lo mismo pero todavía me está fallando: sollozo:: sollozo:
Parece que está codificado en c: \ python27, que fallará para algunos, ya que es una P mayúscula en la instalación (o al menos para mí lo fue)

@Jayflux ¿Lo configuró en la ruta que contiene python.exe o en realidad para que apunte a python.exe ? Debe ser lo último.
Y no sé por qué la P mayúscula debería importar aquí, ya que (a) ese es el valor predeterminado y (b) los nombres de archivo no deben distinguir entre mayúsculas y minúsculas en Windows ...

@Boddlnagg apunté directamente al python.exe y sigo recibiendo el mismo error
Ok, no sabía sobre la insensibilidad a mayúsculas y minúsculas, es bueno saberlo

Entonces, si https://github.com/servo/servo/issues/13272 es algo por lo que pasar ... Las herramientas de compilación de Visual C ++ están dando resultados diferentes a la compilación completa de Visual Studio

Voy a intentar hacer esto nuevamente, desinstalando las herramientas de compilación de Visual C ++ y en su lugar usando la instalación completa de Visual Studio, para ver si eso tiene algo que ver con eso.

@larsbergstrom @vvuk
Resulta que el problema era que yo usaba http://landinghub.visualstudio.com/visual-cpp-build-tools en lugar de instalar Visual Studio.

Ahora tengo la pantalla blanca como todos los demás.

¿Fue útil esta página
0 / 5 - 0 calificaciones