如何摆脱构建 Chromium 时的 gn gen 错误?

How to get rid of gn gen error while building Chromium?

提问人:unary 提问时间:12/2/2022 最后编辑:karelunary 更新时间:6/29/2023 访问量:832

问:

我试图找到这个特定错误的原因,但我真的不明白如何摆脱它。

k@k-virtual-machine:~/Documents/code/chromium/src$ gn gen out/Default
ERROR at //chrome/version.gni:114:11: Script returned non-zero exit code.
_result = exec_script("//build/util/version.py",
          ^----------
Current dir: /home/k/Documents/code/chromium/src/out/Default/
Command:python3 /home/k/Documents/code/chromium/src/build/util/version.py -f ../../chrome/VERSION -t full = "@MAJOR@.@MINOR@.@BUILD@.@PATCH@" major = "@MAJOR@" minor = "@MINOR@" build = "@BUILD@" patch = "@PATCH@"  --os linux
Returned 1.
stderr:
Traceback (most recent call last):
  File "/home/k/Documents/code/chromium/src/build/util/version.py", line 267, in <module>
    sys.exit(main())
  File "/home/k/Documents/code/chromium/src/build/util/version.py", line 256, in main
    output = BuildOutput(sys.argv[1:])
  File "/home/k/Documents/code/chromium/src/build/util/version.py", line 248, in BuildOutput
    values = GenerateValues(options, evals)
  File "/home/k/Documents/code/chromium/src/build/util/version.py", line 198, in GenerateValues
    values = FetchValues(options.file, options.official)
  File "/home/k/Documents/code/chromium/src/build/util/version.py", line 62, in FetchValues
    FetchValuesFromFile(lastchange_values, lastchange_filename)
  File "/home/k/Documents/code/chromium/src/build/util/version.py", line 29, in FetchValuesFromFile
    with open(file_name, 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/home/k/Documents/code/chromium/src/build/util/LASTCHANGE'

See //ui/gl/features.gni:8:1: whence it was imported.
import("//chrome/version.gni")
^----------------------------

See //BUILD.gn:35:1: whence it was imported.
import("//ui/gl/features.gni")
^----------------------------**
python-3.x linux ubuntu-16.04 忍者

评论

0赞 wjandrea 12/2/2022
欢迎回到 Stack Overflow!请不要发布文字图片。相反,复制文本本身并使用格式设置工具,例如代码格式设置。有关更多提示,请查看如何提问。例如,写一个更清晰的标题可能会有所帮助,说明什么错误。
0赞 Community 12/2/2022
请提供足够的代码,以便其他人可以更好地理解或重现问题。
0赞 unary 12/2/2022
修改了问题,请调查一下。
1赞 Asesh 12/3/2022
源代码似乎没有正确同步。运行并重试gclient sync
0赞 unary 12/4/2022
@Asesh 我尝试运行gclient sync,但遇到这样的错误: 警告:文件大小:1556480 与 Content-Length:2135262 不匹配

答:

1赞 Haytham 4/9/2023 #1

我遇到了同样的问题,我通过以下步骤修复了它:

  1. 转到 /src/build/util
  2. 运行 lastchange.py 脚本(python3 lastchange.py LASTCHANGE.dummy)
  3. 此脚本将生成一个名为 LASTCHANGE.dummy.committime 的新文件
  4. 将其重命名为 LASTCHANGE.committime
  5. 如果仍然缺少 LASTCHANGE 文件,请创建 LASTCHANGE.committime 的副本并将其重命名为 LASTCHANGE

这应该可以修复错误

评论

0赞 Mikael 5/14/2023
这并不能解决我的错误。我得到这个(比上一个错误少了 2 行):看起来它需要一个键值对。File ".../chromium/src/build/util/version.py", line 30, in FetchValuesFromFile key, val = line.rstrip('\r\n').split('=', 1)
0赞 Volodymyr Shalashenko 6/29/2023 #2

您可以在 src/build/util 目录下手动创建两个文件:LASTCHANGE,包含以下代码

LASTCHANGE=0
LASTCHANGE_YEAR=1970 

和 LASTCHANGE.committime 包含

0

那么它应该可以工作。