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
相关产品推荐
相关产品推荐

