提问人:Herman 提问时间:3/10/2023 最后编辑:Herman 更新时间:11/15/2023 访问量:2932
chromium 结帐版本:找不到 Ninja
chromium checkout build: Could not find Ninja
问:
尝试在 ubuntu 18.04 的 docker 容器中为 android 构建 webview。
按照指令做所有事情,最后一个版本是用命令构建的:
autoninja -C out/Default system_webview_apk
但我需要一个旧版本。所以我这样做:
git checkout 80.0.3987.99 -b 80-version
之后运行同步:
gclient sync
默认情况下,它还会在同步后运行钩子。然后我再次使用相同的 cmd 开始构建:
autoninja -C out/Default system_webview_apk
但是这次在结帐时,它给了我错误,我无法修复几个小时:
user@0bb1627b6f62:~/workdir/chromium/src$ autoninja -c out/Default/ system_webview_apk
depot_tools/ninja.py: Could not find Ninja in the third_party of the current project, nor in your PATH.
Please take a following action to install Ninja.
- If your project has DEPS, Add a CIPD Ninja dependency to DEPS.
- Otherwise, add Ninja to your PATH *after* depot_tools.
但是当我再次切换到分支时,请进行同步,它构建得很好!main
我做错了什么? 在这两种情况下都运行正常。gn args
在分支上有.在此文件夹消失后的签出分支上。在同步运行之前会出错,因为 ninja 的版本与结帐版本不对应。main
src/third_party/ninja/
gclient sync
autoninja
unknown function
答:
5赞
Herman
3/13/2023
#1
好吧,事实证明,由于某种原因,即使使用命令,sync 也不会为我的结帐获取忍者。我被gclient sync --with_branch_heads
Ninja 包含在depot_tools中,因此无需安装任何内容。
来自 Chromium 文档。此外,我认为忍者版本应该与我的 chromium 结帐相对应,但据我所知,它只与工具有关。gn
所以,我的解决方案只是添加到我的 docker 文件中
apt install ninja-build
每次结账都毫无问题地开始构建。
评论
0赞
user386093
11/15/2023
Herman:无论如何,在没有docker的情况下做到这一点?
0赞
Herman
11/16/2023
@user386093,如果您在不使用 docker 容器的情况下在系统中构建 Chromium,那么您只需要在系统中安装即可。在终端中运行与上述相同的命令。但是,如果您使用的是 Ubuntu 以外的其他 Linux 发行版,情况可能会有所不同。ninja-build
0赞
afei
7/11/2023
#2
你depot_tools与你的 Chromium 源不匹配,查看 Chromium 的最后日志日期,切换到depot_tools目录,在 Chromium 源附近找到一个上一个提交,签出到这个提交,返回 ninjia,一切都没问题。
评论
0赞
user386093
11/15/2023
afei:你能描述一下从命令行做什么吗?我现在收到这条关于找不到忍者的消息。 。 。如何执行这些步骤: 1. 查看 Chromium 的最后日志日期(是否在 src 目录中完成?以及如何完成?)2.然后切换到depot_tools目录~没问题,我可以做到。3. 在 Chromium 源附近找到一个最后的提交(我什至不知道如何开始这个) 4.签出此提交(我该怎么做?我对命令行很满意,但我需要一些信息。提前致谢!
评论
depot_tools