Servo: 为 MSVC 添加文档

创建于 2016-09-08  ·  37评论  ·  资料来源: servo/servo

鉴于#12916 的完成,重要的是让贡献者知道如何为 Servo 设置他们的 Windows 环境。

要修改的文件:任何带有文档的内容(即 README.md)

抄送@larsbergstrom

A-documentation C-assigned P-windows

最有用的评论

谢谢! 我现在正在尝试这个,这是我的一些初始步骤。 到目前为止,我只在一台非干净的虚拟机上尝试过,不过......

Windows MSVC 预设置

  • 安装适用于 Windows 的 Git (https://git-scm.com/download/win)
    允许它添加 git.exe 到 PATH(安装程序的默认设置很好)
  • 安装 Visual Studio 2015 社区版 (https://www.visualstudio.com/)
    您必须将“Visual C++”添加到已安装组件的列表中。 默认情况下不启用。
  • 为 Windows 安装 Python (https://www.python.org/downloads/release/python-2711/)
    windows x86-64 MSI 安装程序很好。
    您应该更改安装以安装“将 python.exe 添加到路径”功能。
  • 安装 virtualenv
    在普通的 Windows Shell(cmd.exe 或开始菜单中的“命令提示符”)中,执行:
pip install virtualenv

如果这不起作用,您可能需要重新启动以使更改的 PATH 设置生效。

克隆伺服

  • 打开一个普通的 Windows shell(cmd.exe,或从开始菜单中的“命令提示符”)
  • 克隆 Servo:
git clone https://github.com/servo/servo

建立伺服

cd servo
mach.bat build -d

所有37条评论

谢谢! 我现在正在尝试这个,这是我的一些初始步骤。 到目前为止,我只在一台非干净的虚拟机上尝试过,不过......

Windows MSVC 预设置

  • 安装适用于 Windows 的 Git (https://git-scm.com/download/win)
    允许它添加 git.exe 到 PATH(安装程序的默认设置很好)
  • 安装 Visual Studio 2015 社区版 (https://www.visualstudio.com/)
    您必须将“Visual C++”添加到已安装组件的列表中。 默认情况下不启用。
  • 为 Windows 安装 Python (https://www.python.org/downloads/release/python-2711/)
    windows x86-64 MSI 安装程序很好。
    您应该更改安装以安装“将 python.exe 添加到路径”功能。
  • 安装 virtualenv
    在普通的 Windows Shell(cmd.exe 或开始菜单中的“命令提示符”)中,执行:
pip install virtualenv

如果这不起作用,您可能需要重新启动以使更改的 PATH 设置生效。

克隆伺服

  • 打开一个普通的 Windows shell(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 ),以防万一。
_Edit 2:_ 与mach.bat build -d相同的结果

请注意,仅在PATH包含python.exe是不够的,我还必须确保scripts文件夹在我的PATH以便我可以运行 pip 来安装 virtualenv 并让 mach 查看 virtualenv。

我也很失望没有mach.ps

在 Python 安装程序中选择“添加到 PATH”选项会添加 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 个 CPU 内核,而什么都不做。

如果我关闭伺服,该进程将继续运行并开始吃掉_所有_我的 CPU 内核。

@reep998您需要指定一个 URL。

@Coder206我做了cmd /c mach.bat run -d http://www.purple.com 。 这还不够吗?

@reep998应该这样做。 我站纠正我的输出像你的一样。 赢10周年?

@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 问题。

通过查看mosjs-sys中的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 结束,所以它不会被货物转发。

设置NATIVE_WIN32_PYTHON然后实际上解决了这个问题 :smiley:
现在我也处于运行伺服显示带有正确标题的空白窗口的地步,但没有其他内容。 我正在运行 Windows 10 家庭版。

谢谢大家! 看起来这些说明是正确的(尽管可能需要修复@Boddlnagg的问题)足以放在网站上。

也就是说,正如@retep998@Coder206已经注意到并且我可以确认,MSVC 构建当前未完成加载并且是空白的。 我们必须调查一下:-)

@larsbergstrom我想我的 VM 上的存储空间有问题。 您(或任何人)对添加推荐的磁盘空间有何想法?

关于磁盘空间......对于一个简单的开发构建,没有测试,没有发布构建,并且不计算货物缓存中占用的空间......

所以我会说至少有 10GB 的可用空间。

@reep998感谢您这样做。 我认为这就是为什么我在编译时遇到问题(即编译“脚本”失败)。

是的,我认为“低磁盘空间警告”(作为一个单独的问题)可能是值得的。 现在,当我们用完空间时,脚本构建失败的方式既不透明又不容易恢复——您通常必须进行干净的构建。

@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

使用 Vlad 的叉子时,我得到了这个
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首先存在另一个更邪恶的 python。 我的看起来像:

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看到白屏而不是网站内容的问题是否存在未解决的问题? 我在使用 Intel HD Graphics 4000 的 Windows 10 Educational(版本 10.0.10586)上遇到了同样的问题。

@aochagavia不,它没有问题

我应该创建一个新的吗?

我认为这是个好主意。 感谢您这样做@aochagavia!

在 mozjs makefile.cargo 中,有一行: SRC_DIR = $(shell pwd)我想知道对你来说,pwd 是给 c:......,而对我来说,它给了 c:/...。

对我来说%MOZTOOLS_PATH%\pwd/c/proj/r ; 但那是本地 MOZTOOLS_PATH。 您应该看到 mach 为设置 $PATH/$MOZTOOLS_PATH 所做的一切以及它找到的密码。

@vlad是否有任何步骤
这些命令不在控制台中运行

我需要设置 moztools 路径环境变量吗?

@vvuk这是结果(我的主机,而不是 VM)
指挥官:

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。 cargo:98在 mosjs-sys 我找到了这条线

$(message 您必须在 C:/python27 中安装本机 Win32 python,或者将 NATIVE_WIN32_PYTHON 设置为指向适当的 python.exe。)
不幸的是,在构建时从未显示过,因为它以 stdout 而不是 stderr 结束,所以它不会被货物转发。

设置 NATIVE_WIN32_PYTHON 然后实际上解决了这个问题 :smiley:
现在我也处于运行伺服显示带有正确标题的空白窗口的地步,但没有其他内容。 我正在运行 Windows 10 家庭版。

@Boddlnagg我做了同样的事情,但对我来说仍然
看起来它硬编码到 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 等级

相关问题

pyfisch picture pyfisch  ·  4评论

jdm picture jdm  ·  3评论

jdm picture jdm  ·  3评论

kmcallister picture kmcallister  ·  4评论

noisiak picture noisiak  ·  3评论