Servo: Hinzufügen von Dokumentation für MSVC

Erstellt am 8. Sept. 2016  ·  37Kommentare  ·  Quelle: servo/servo

Angesichts der Fertigstellung von Nr. 12916 ist es wichtig, die Mitwirkenden wissen zu lassen, wie sie ihre Windows-Umgebungen für Servo einrichten.

Zu ändernde Dateien: Alles mit Dokumentation (dh README.md)

cc @larsbergstrom

A-documentation C-assigned P-windows

Hilfreichster Kommentar

Vielen Dank! Ich probiere das gerade aus, und hier ist, was ich für erste Schritte habe. Ich habe es bisher jedoch nur auf einer nicht sauberen virtuellen Maschine ausprobiert ...

Windows MSVC-Voreinstellung

  • Git für Windows installieren (https://git-scm.com/download/win)
    Erlauben Sie ihm, git.exe zum PATH hinzuzufügen (Standardeinstellungen für das Installationsprogramm sind in Ordnung)
  • Installieren Sie Visual Studio 2015 Community Edition (https://www.visualstudio.com/)
    Sie MÜSSEN "Visual C++" zur Liste der installierten Komponenten hinzufügen. Es ist standardmäßig nicht aktiviert.
  • Python für Windows installieren (https://www.python.org/downloads/release/python-2711/)
    Das Windows x86-64 MSI-Installationsprogramm ist in Ordnung.
    Sie sollten die Installation ändern, um die Funktion "python.exe zum Pfad hinzufügen" zu installieren.
  • Virtualenv installieren
    Führen Sie in einer normalen Windows-Shell (cmd.exe oder "Eingabeaufforderung" aus dem Startmenü) Folgendes aus:
pip install virtualenv

Wenn dies nicht funktioniert, müssen Sie möglicherweise neu starten, damit die geänderten PATH-Einstellungen wirksam werden.

Klon-Servo

  • Öffnen Sie eine normale Windows-Shell (cmd.exe oder "Eingabeaufforderung" aus dem Startmenü)
  • Machen Sie einen Klon von Servo:
git clone https://github.com/servo/servo

Servo bauen

cd servo
mach.bat build -d

Alle 37 Kommentare

Vielen Dank! Ich probiere das gerade aus, und hier ist, was ich für erste Schritte habe. Ich habe es bisher jedoch nur auf einer nicht sauberen virtuellen Maschine ausprobiert ...

Windows MSVC-Voreinstellung

  • Git für Windows installieren (https://git-scm.com/download/win)
    Erlauben Sie ihm, git.exe zum PATH hinzuzufügen (Standardeinstellungen für das Installationsprogramm sind in Ordnung)
  • Installieren Sie Visual Studio 2015 Community Edition (https://www.visualstudio.com/)
    Sie MÜSSEN "Visual C++" zur Liste der installierten Komponenten hinzufügen. Es ist standardmäßig nicht aktiviert.
  • Python für Windows installieren (https://www.python.org/downloads/release/python-2711/)
    Das Windows x86-64 MSI-Installationsprogramm ist in Ordnung.
    Sie sollten die Installation ändern, um die Funktion "python.exe zum Pfad hinzufügen" zu installieren.
  • Virtualenv installieren
    Führen Sie in einer normalen Windows-Shell (cmd.exe oder "Eingabeaufforderung" aus dem Startmenü) Folgendes aus:
pip install virtualenv

Wenn dies nicht funktioniert, müssen Sie möglicherweise neu starten, damit die geänderten PATH-Einstellungen wirksam werden.

Klon-Servo

  • Öffnen Sie eine normale Windows-Shell (cmd.exe oder "Eingabeaufforderung" aus dem Startmenü)
  • Machen Sie einen Klon von Servo:
git clone https://github.com/servo/servo

Servo bauen

cd servo
mach.bat build -d

Ich versuche das gerade, aber es schlägt fehl, mozjs_sys zu kompilieren:

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:_ Ich habe vergessen zu erwähnen, dass ich einen Release-Build mache ( mach.bat build -r ), falls das wichtig ist.
_Edit 2:_ Gleiches Ergebnis mit mach.bat build -d

Beachten Sie, dass es nicht ausreicht, nur python.exe in meinem PATH , ich musste auch sicherstellen, dass der Ordner scripts in meinem PATH damit ich es konnte Führen Sie pip aus, um virtualenv zu installieren, und für mach, um virtualenv zu sehen.

Außerdem bin ich enttäuscht, dass es keine mach.ps .

Durch Auswahl der Option "Zu PATH hinzufügen" im Python-Installationsprogramm wurden sowohl das Stammverzeichnis der Python-Installation als auch das Verzeichnis scripts hinzugefügt. Ich musste mich nur abmelden und erneut bei Windows anmelden, damit diese Änderungen wirksam wurden.

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

Ich denke, es hat funktioniert, irgendwie. Versuch, das Ergebnis tatsächlich auszuführen...

Servo exited with return value -1073741515 was STATUS_DLL_NOT_FOUND . Ich glaube, die fehlende DLL ist freetype.dll . Hmmm, könnte tatsächlich an meinem .cargo/config das eine Build-Skript-Überschreibung für Freetype angibt, damit es tatsächlich normal funktioniert, und es könnte mit dem Freetype von Servo in Konflikt stehen.

Okay, nachdem ich mein .cargo/config auskommentiert habe, läuft Servo jetzt tatsächlich und ist dann völlig nutzlos. Beim Laden einer Seite wird zwar der Titel angezeigt, aber die Seite selbst ist völlig leer.

Darüber hinaus frisst es 2 CPU-Kerne, während es absolut nichts tut.

Wenn ich Servo schließe, läuft der Prozess weiter und fängt an, _alle_ meine CPU-Kerne aufzufressen.

@retep998 Sie müssen eine URL angeben.

@Coder206 Ich habe cmd /c mach.bat run -d http://www.purple.com . Ist das nicht genug?

@retep998 Das sollte es tun. Ich stehe korrigiert, meins gibt wie Ihres aus. 10 Jubiläum gewinnen?

@retep998 Ich vermute, dass dies an den Dummy-Schrifteinstellungen in gfx liegt.

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

AMD Radeon R9 380 mit aktuellen Treibern mit voller OpenGL 4.5-Unterstützung.

@retep998 Danke, dies scheint ein allgemeines Windows- oder vielleicht nur ein Windows 10-Problem zu sein.

Als ich mir makefile.cargo:98 in mosjs-sys ansah, fand ich die Zeile

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

was leider beim Bauen nie angezeigt wird, da es in stdout statt stderr landet, also nicht per Fracht weitergeleitet wird.

Das Setzen von NATIVE_WIN32_PYTHON hat das Problem dann tatsächlich behoben :smiley:
Jetzt bin ich auch an dem Punkt, an dem running servo ein leeres weißes Fenster mit dem richtigen Titel anzeigt, aber sonst nichts. Ich verwende Windows 10 Home.

Danke an alle! Es sieht so aus, als ob die Anweisungen korrekt sind (obwohl möglicherweise eine Korrektur für das Problem von

Wie @retep998 und @Coder206 bemerkt haben und ich bestätigen kann, wird der MSVC-Build derzeit nicht vollständig geladen und ist leer. Das müssen wir uns anschauen :-)

@larsbergstrom Ich glaube, ich hatte Probleme mit dem Speicherplatz auf meiner VM. Was denken Sie (oder jemand anderes) über das Hinzufügen eines empfohlenen Speicherplatzes?

In Bezug auf den Speicherplatz ... für einen einfachen Entwickler-Build, ohne Tests und ohne Release-Build, und ohne den Platzbedarf im Cargo-Cache zu zählen ...

Ich würde also sagen, dass _mindestens_ 10 GB freier Speicherplatz vorhanden sind.

@retep998 Danke dafür. Ich denke, das ist der Grund, warum ich Probleme beim Kompilieren hatte (dh das Kompilieren von "Skript" ist fehlgeschlagen).

Ja, ich denke, dass eine "Warnung zu wenig Speicherplatz" (als separates Problem) lohnenswert sein könnte. Gerade jetzt, wenn uns der Speicherplatz ausgeht, schlägt der Skript-Build auf eine Weise fehl, die sowohl undurchsichtig als auch nicht trivial zur Wiederherstellung ist - Sie müssen normalerweise einen sauberen Build durchführen.

@larsbergstrom Erfolg auf einem sauberen Windows 10-Rechner

Sie benötigen kein Visual Studio.
Sie können Visual C++ als Standalone von hier herunterladen:
http://landinghub.visualstudio.com/visual-cpp-build-tools
Verwenden der Standardinstallationsoption

@Jayflux Das gefällt mir viel besser, das spart viel Platz

Build scheitert für mich
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

Wenn ich Vlads Gabel verwende, bekomme ich dies
https://pastebin.mozilla.org/8909575

Testen auf 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

Können Sie set PATH tun und die Ergebnisse hier einfügen? Ich mache mir Sorgen, dass es eine andere, bösere Python gibt, die an erster Stelle in Ihrem PATH . Meine sieht aus wie:

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 hat bei mir nicht funktioniert

Bei mir hat die Anleitung auch funktioniert.

@Coder206 Gibt es ein offenes Problem für das Problem, dass anstelle des Inhalts der Website ein weißer Bildschirm angezeigt wird? Ich habe das gleiche Problem unter Windows 10 Educational (Version 10.0.10586) mit einer Intel HD Graphics 4000.

@aochagavia Nein, es gibt kein Problem dafür

Soll ich einen neuen erstellen?

Ich würde denken, es wäre eine gute Idee. Danke dafür @aochagavia!

in mozjs makefile.cargo gibt es eine Zeile: SRC_DIR = $(shell pwd) Ich frage mich, ob pwd für dich c:...... und für mich c:/... gibt.

Für mich ergibt %MOZTOOLS_PATH%\pwd /c/proj/r ; aber das ist mit einem lokalen MOZTOOLS_PATH. Sie sollten sehen, was mach tut, um $PATH/$MOZTOOLS_PATH einzurichten und welche pwd es findet.

@vlad Gibt es Schritte, um herauszufinden, was mir pwd gibt?
Diese Befehle werden nicht in der Konsole ausgeführt

Muss ich die Moztools-Pfade-env-Variable setzen?

@vvuk hier sind die Ergebnisse (mein Host-Rechner, nicht 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>

Ebenfalls...
Ich weiß nicht, ob das hilft, aber ich habe bemerkt, dass Sie hier einen Pfad zu Python hinzugefügt haben:
https://github.com/servo/mozjs/commit/7ba7cfa262dd6864d581855bad47c28d4ad97970#diff -9080a05d9a2f1078a5790475b50fdb37L96

Meine Python-Installation ist jedoch:
C:\Python27 mit einem Großbuchstaben P

Durch einen Blick auf Makefile. cargo:98 in mosjs-sys habe ich die Zeile gefunden

$(message Sie müssen entweder das native Win32-Python in C:/python27 installiert haben oder NATIVE_WIN32_PYTHON so einstellen, dass es auf die entsprechende python.exe verweist.)
was leider beim Bauen nie angezeigt wird, da es in stdout statt stderr landet, also nicht per Fracht weitergeleitet wird.

Das Einstellen von NATIVE_WIN32_PYTHON hat das Problem dann tatsächlich behoben :smiley:
Jetzt bin ich auch an dem Punkt, an dem running servo ein leeres weißes Fenster mit dem richtigen Titel anzeigt, aber sonst nichts. Ich verwende Windows 10 Home.

@Boddlnagg Ich habe dasselbe getan, aber es scheitert immer noch für mich :sob: :sob:
Sieht so aus, als ob es in c:\python27 fest codiert ist, was für einige fehlschlagen wird, da es bei der Installation ein großes P ist (oder zumindest für mich war es das)

@Jayflux Haben Sie es auf den Pfad gesetzt, der python.exe oder tatsächlich auf python.exe selbst zeigt? Letzteres muss es sein.
Und ich weiß nicht, warum der Großbuchstabe P hier wichtig sein sollte, da (a) dies die Standardeinstellung ist und (b) Dateinamen unter Windows die Groß-/Kleinschreibung nicht berücksichtigen sollten ...

@Boddlnagg ich habe direkt auf die python.exe selbst verwiesen und bekomme immer noch den gleichen Fehler
Ok wusste nichts von der Groß-/Kleinschreibung, gut zu wissen

Wenn also https://github.com/servo/servo/issues/13272 etwas ist, nach dem man sich orientieren kann. Visual C++-Build-Tools liefern unterschiedliche Ergebnisse zum vollständigen Visual Studio-Build

Ich werde dies erneut versuchen, indem ich die Visual C++-Buildtools deinstalliere und stattdessen die vollständige Installation von Visual Studio verwende, um zu sehen, ob das etwas damit zu tun hat

@larsbergstrom @vvuk
Es stellte sich heraus, dass das Problem darin bestand, dass ich http://landinghub.visualstudio.com/visual-cpp-build-tools verwendet habe, anstatt Visual Studio zu installieren.

Ich bekomme jetzt den weißen Bildschirm wie alle anderen

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen