Mac主机交叉编译Windows版Chromium报WINDOWSSDKDIR缺失错误
Mac交叉编译Chromium提示
WINDOWSSDKDIR缺失报错解决 问题根因
构建阶段执行工具链查找脚本时,无法从环境变量中读取到Windows SDK路径,触发KeyError导致ninja构建文件生成失败。
解决步骤
- 第一步先拉取匹配当前源码版本的交叉编译工具链,在Chromium源码根目录执行:
python3 build/vs_toolchain.py update --force
该命令会自动下载对应版本的VS构建组件、Windows SDK到源码的第三方依赖缓存目录,正常执行完成后脚本即可自动识别SDK路径,无需额外配置。
- 执行完上述命令仍报错的,手动配置SDK路径环境变量:
- 执行查找命令定位本地已下载的SDK位置:
find /你的chromium源码根目录路径/third_party -name "Windows Kits" -type d- 将查到的路径补全到
Windows Kits/10层级,写入shell配置文件。以zsh为例,在~/.zshrc末尾添加:
export WINDOWSSDKDIR="上一步查到的实际路径/Windows Kits/10"- 执行
source ~/.zshrc让环境变量立即生效。
- 检查构建参数配置,打开
out/win/args.gn确认存在以下关键配置,避免脚本错误查找系统本地安装的VS工具链:
target_os = "win" target_cpu = "x64" # 编译arm64版本替换为arm64即可 win_use_external_vs_toolchain = false
参数修改完成后,进入out/win目录执行gn gen .重新生成构建配置,再重新执行构建命令即可。
- 以上操作都无效的,检查当前拉取的Chromium分支是否为过旧版本,部分旧分支的
vs_toolchain.py存在Mac平台路径识别bug,直接修改build/vs_toolchain.py内SetEnvironmentAndGetSDKDir函数,在读取环境变量的逻辑前增加兜底,直接返回本地SDK的绝对路径即可绕过该问题。
内容的提问来源于stack exchange,提问作者Hetero
相关产品推荐
相关产品推荐

