我正在定量研究与自动化测试相关的各种指标。Chrome似乎有一个合理的设置,所以我想将它添加到我的数据集中。我下载了 Chrome 源代码并尝试使用 VisualStudio 构建它,但出现了数百个错误——未定义类型、未定义标识符等。有没有人在 Windows 下成功构建 Chrome?有没有我需要知道的技巧?
2 回答
从 Chromium 开发页面:
编译失败
当您遇到奇怪的编译失败时,需要考虑一些常见的事情:
- 确保您拥有 Visual Studio 2005 的 SP1。它是必需的。真的。
- 有时,Visual Studio 在构建 Chromium 时会做错事并陷入虚假错误。一个很好的迹象是,如果它只对一个人失败,而其他人(包括 Buildbots)没有抱怨。要解决此问题,请尝试以下步骤:
- 关闭 Visual Studio。
- 同步到树的顶端并确保没有冲突(“svn st”不应在您更改的文件前面显示任何“C”)。
- 如果存在冲突,请在解决冲突后再次同步。
- 手动擦除输出目录(chrome\Debug 和 chrome\Release。使用命令行,您可以使用 chrome 目录中的“erase /S /Q Debug Release”来执行此操作,或者如果您有“rm -rf Debug Release”安装了类 Unix 工具。
- 重新启动 Visual Studio 并打开 Chromium 解决方案。
- 重建解决方案。
如果它仍然不起作用,重复此过程可能无济于事。
chrome_kjs.sln 临时文件问题
如果在构建 JavaScriptCore 时,您会看到如下错误:
3>Error in tempfile() using /tmp/dftables-XXXXXXXX.in: Parent directory (/tmp/) is not writable
3> at /cygdrive/c/b/slave/WEBKIT~1/build/webkit/third_party/JavaScriptCore/pcre/dftables line 236
3>make: *** [chartables.c] Error 255
...这是因为 Chromium 源中包含的 Cygwin 安装无法将 NT ACL 映射到 POSIX 权限。这似乎发生在 Chromium 签出到 Cygwin 首先无法确定权限的目录时,可能是在运行 mkpasswd 之前从 Cygwin 环境中创建目录时。Cygwin 然后强加自己的访问控制,这是错误的限制。作为解决方法,请执行以下操作之一:
编辑third_party\cygwin\tmp 上的NT 权限,以允许Everyone 和machine\Users 的Modify 和Write 操作。Cygwin 能够解决这个问题。或者,
找出您的结帐出了什么问题,然后重试 - 尝试从 cmd 而不是从 Cygwin shell 进行结帐,然后验证您的 Cygwin 安装中的权限是否完全空白。或者,
通过编辑 webkit\build\JavaScriptCore\prebuild.bat 和 webkit\build\WebCore\prebuild.bat 来绕过 Cygwin 的访问控制(NT 仍然有效),在调用任何使用 Cygwin 的程序之前包含以下行:
set CYGWIN=nontsec
应该只需要其中一种解决方案。
我已经能够多次构建 Chrome。如果您想查看 使用 Visual Studio.NET 2008 在 Windows 7 中构建 Chrome,我提供了全面的材料