You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下编译指定Tag版本Chromium时路径挂载错误求助

解决Windows下Chromium指定Tag版本编译时的mojom路径错误

错误分析

从报错栈信息来看,Python的os.path.relpath函数误将tab_group_types.mojom-webui.js识别为Windows挂载点(类似盘符或共享路径),与当前工作目录所在的d:盘冲突,导致路径解析失败。问题出在mojom TypeScript绑定生成阶段,大概率是目标Tag版本的代码存在路径处理bug,或是相关mojom文件的导入路径配置错误。

解决方案

1. 检查并修正mojom文件的导入路径

定位到chrome/browser/ui/webui/tab_search/目录下的相关mojom文件(比如tab_search.mojom),检查对tab_group_types.mojom的引用:

  • 确保使用相对路径,避免绝对路径或错误的UNC格式(比如\\tab_group_types.mojom)
  • 正确示例:import "./tab_group_types.mojom";,如果文件不在同级目录,根据层级调整为import "../xxx/tab_group_types.mojom";

2. 临时修补mojom_ts_generator.py代码

直接修改src/mojo/public/tools/bindings/generators/mojom_ts_generator.py中的_GetJsModuleImports函数,添加异常处理绕过路径解析错误:
找到调用os.path.relpath的代码段(大概第617行附近),替换为:

try:
    relative_path = os.path.relpath(target_path, os.path.dirname(output_path))
except ValueError:
    # 路径解析失败时,直接使用文件名作为相对路径
    relative_path = os.path.basename(target_path)

保存修改后重新执行编译。

3. 匹配目标Tag的依赖版本

  • 查看目标Tag对应的docs/building/windows.md文档,确认要求的Python版本、depot_tools版本
  • 切换到对应版本的depot_tools:在depot_tools目录执行git checkout <目标版本标签>
  • 确保Python版本符合要求,避免使用最新版Python引发兼容性问题

4. 清理编译缓存后重新构建

# 清理当前构建目录
gn clean out/your_build_dir
# 重新生成构建配置
gn gen out/your_build_dir --args="is_debug=false target_cpu=\"x64\""
# 重新启动编译
autoninja -C out/your_build_dir chrome

5. 解决Windows长路径限制

如果源码路径过长,可能触发Windows路径长度限制:

  • 启用长路径支持:通过组策略(计算机配置>管理模板>系统>文件系统>启用长路径)或修改注册表(HKLM\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled设为1)
  • 将Chromium源码移动到更短的路径下,比如D:\chr\src而非D:\chromium\src\

内容的提问来源于stack exchange,提问作者Sina Akbari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:04:55