Windows10编译Chromium时GN命令无法运行的解决求助
Windows10下Chromium编译GN命令报错(缺失LASTCHANGE文件)解决方案
一、GN正常运行的核心配置要求
- 系统:Windows 10 64位(版本1903及以上,优先推荐20H2或更高版本)
- 硬件:至少16GB内存(编译大项目建议32GB以上),必须用SSD硬盘(避免编译时IO拖慢进度)
- 依赖工具:
- depot_tools:要正确添加到系统PATH,确保
gn、gclient能直接调用 - Python:直接用depot_tools自带的版本,别自己装其他Python,避免版本冲突
- Visual Studio:用VS2022(17.0及以上版本),安装时必须勾选「C++桌面开发」和「Windows SDK」组件
- depot_tools:要正确添加到系统PATH,确保
二、缺失LASTCHANGE文件的修复方法
1. 重新同步源码
进入C:\chromium\src目录,打开命令行运行:
gclient sync --with_branch_heads --with_tags
这个命令会同步所有缺失的依赖文件,包括自动生成LASTCHANGE。
2. 手动生成LASTCHANGE文件
如果同步后还是没生成,手动创建C:\chromium\src\build\util\LASTCHANGE文件,内容格式如下(替换成当前源码的Git提交信息):
LASTCHANGE=abc123def4567890 # 换成你本地源码最新的Git提交哈希 LASTCHANGE_DATE=2024-05-20 14:30:00 +0800 # 对应提交的日期时间
或者直接用Git命令自动生成:
cd C:\chromium\src git log -1 --format="LASTCHANGE=%H%nLASTCHANGE_DATE=%ci" > build/util/LASTCHANGE
3. 检查depot_tools状态
如果depot_tools损坏也会导致文件生成失败,删除C:\src\depot_tools下的bootstrap-*开头的临时文件夹,然后重新运行gclient命令,让工具自动更新修复。
三、所需SDK版本及获取方式
- Windows SDK版本:当前Chromium稳定分支要求Windows SDK 10.0.22621.0(Windows10完全兼容这个版本)
- 获取方式:直接通过Visual Studio安装程序,在「单个组件」里搜索「Windows SDK 10.0.22621.0」,勾选后安装即可,不用单独下载。
错误详情翻译
Traceback (most recent call last): 文件 "C:/chromium/src/build/util/version.py", 第266行, 在 <module>中 sys.exit(main()) 文件 "C:/chromium/src/build/util/version.py", 第255行, 在 main中 output = BuildOutput(sys.argv[1:]) 文件 "C:/chromium/src/build/util/version.py", 第247行, 在 BuildOutput中 values = GenerateValues(options, evals) 文件 "C:/chromium/src/build/util/version.py", 第197行, 在 GenerateValues中 values = FetchValues(options.file, options.official) 文件 "C:/chromium/src/build/util/version.py", 第61行, 在 FetchValues中 FetchValuesFromFile(lastchange_values, lastchange_filename) 文件 "C:/chromium/src/build/util/version.py", 第28行, 在 FetchValuesFromFile中 with open(file_name, 'r') as f: FileNotFoundError: [Errno 2] 没有该文件或目录: 'C:\\chromium\\src\\build\\util\\LASTCHANGE' ERROR at //chrome/version.gni:121:11: 脚本返回非零退出码。 _result = exec_script("//build/util/version.py", ^---------- 当前目录: C:/chromium/src/out/Default/ 命令: C:/src/depot_tools/bootstrap-2@3_8_10_chromium_26_bin/python3/bin/python3.exe C:/chromium/src/build/util/version.py -f ../../chrome/VERSION -t "full = \"@MAJOR@.@MINOR@.@BUILD@.@PATCH@\" major = \"@MAJOR@\" minor = \"@MINOR@\" build = \"@BUILD@\" patch = \"@PATCH@\" " --os win 返回值 1。 从//ui/gl/features.gni:8:1导入: import("//chrome/version.gni") ^---------------------------- 从//BUILD.gn:36:1导入: import("//ui/gl/features.gni")
内容的提问来源于stack exchange,提问作者TC-2ND-ACC
相关产品推荐
相关产品推荐

