1

我正在定量研究与自动化测试相关的各种指标。Chrome似乎有一个合理的设置,所以我想将它添加到我的数据集中。我下载了 Chrome 源代码并尝试使用 VisualStudio 构建它,但出现了数百个错误——未定义类型、未定义标识符等。有没有人在 Windows 下成功构建 Chrome?有没有我需要知道的技巧?

4

2 回答 2

4

从 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
    

应该只需要其中一种解决方案。

于 2008-11-11T18:20:38.393 回答
0

我已经能够多次构建 Chrome。如果您想查看 使用 Visual Studio.NET 2008 在 Windows 7 中构建 Chrome,我提供了全面的材料

于 2010-07-09T07:50:52.850 回答