如何使用 Google Chromium GN 构建目标?

How to build with targets with Google Chromium GN?

我正在尝试为 ChromeDriver from source with GN, which I installed in a directory on my PATH with Depot Tools 构建可执行目标,但是当我 运行 gn BUILD.gn 时出现此错误:

gn.py: Could not find checkout in any parent of the current path.
This must be run inside a checkout.

如果设置不正确,我不确定是否需要检查整个 Chromium 目录?

更新

我在 gn_tool 的帮助下下载了 gn 的二进制文件。

我仍然不确定我应该 运行 为 "building the chromedriver target" 执行什么命令,因为现在我尝试的每个命令似乎都会给我这个错误:

ERROR Can't find source root. I could not find a ".gn" file in the current directory or any parent,and the --root command-line argument was not specified.

...即使在我 运行ning gn 的目录中有一个 BUILD.gn 文件...

我刚才遇到了同样的问题

根据 https://chromium.googlesource.com/chromium/src/tools/gn/+/HEAD/docs/standalone.md,“.gn”和其他构建配置文件丢失。看来该项目无法独立构建。也许你应该检查整个 Chromium 目录。

我遇到了同样的问题,但已经解决了。

当我在 depot_tool 目录中 运行 gn 时,我得到了同样的错误信息。

但是我 运行 gn 在 chromium/src 目录下,gn 可以工作!

depot_tool 的路径未设置,请在终端中尝试:

导出 PATH="$PATH:/path/to/depot_tools"

在 src 中你也有 gn 所以这就是为什么代码是 运行.

depot_tool 的路径未设置,请在终端中尝试:

export PATH="$PATH:/path/to/depot_tools"

在 src 中你也有 gn 所以代码是 运行.

src 文件夹中没有 gn - 可执行文件。这个投诉意味着构建系统找不到 ng.exe(for windows) 文件位于“build_tools”数据包(不要与“混淆” depot_tools" )。您可以设置 CHROMIUM_BUILDTOOLS_PATH=D:\PROJECTS\Web\ 来找到它。但是你必须下载正确的版本。

当您没有 buildtools 目录时会发生此错误,例如 src/chromium/buildtools 中的目录已签入您的 git 存储库。

在 chromium 的源代码树之外让它工作的一种廉价方法是将它们复制到您的构建目录,例如:

cp -r ~/src/chromium/buildtools myrepo/buildtools

并将其签入 git

cd myrepo
git add buildtools
git commit -m "add buildtools"

然后您应该能够 运行 gn gen out 在该存储库中成功。

似乎缺少某些依赖项。您可以通过 运行ning

拉取依赖项
gclient sync

应该下载 Chrome 驱动程序编译所需的依赖项。然后运行下面的命令开始编译Chrome驱动:

gn gen out/YourBuildFolder
ninja -C out/YourBuildFolder chromedriver

上面的gn gen...命令基本上会通过复制依赖项和准备必要的文件来为忍者构建系统准备构建文件夹以进行编译。 ninja -C...命令实际上会开始编译文件

希望有用。谢谢