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

macOS Sonoma 14.2.1下Bazel编译absl/base/log_severity.cc失败求助

问题:Sonoma系统升级后Bazel构建失败,报错clang: error: unknown argument: '-fno-canonical-system-headers'

环境信息

  • 系统:Darwin estatead-mlt 23.2.0 Darwin Kernel Version 23.2.0: Wed Nov 15 21:54:10 PST 2023; root:xnu-10002.61.3~2/RELEASE_X86_64 x86_64
  • Clang版本:
Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: x86_64-apple-darwin23.2.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
  • Xcode工具版本:xcode-select version 2405、xcrun version 68
  • Bazel版本:bazel 6.3.2

构建命令及报错详情

执行构建命令:

./bazel build //src/secrets/...

核心报错:

clang: error: unknown argument: '-fno-canonical-system-headers'

解决方法

1. 升级Bazel到兼容版本

Bazel 6.4.0及后续版本已修复Sonoma系统与Apple Clang 15的参数兼容问题,直接升级即可:

# Homebrew用户执行
brew upgrade bazel

# 手动安装用户可下载对应版本替换
wget https://github.com/bazelbuild/bazel/releases/download/6.4.0/bazel-6.4.0-darwin-x86_64
chmod +x bazel-6.4.0-darwin-x86_64
sudo mv bazel-6.4.0-darwin-x86_64 /usr/local/bin/bazel

2. 修改Bazel配置屏蔽无效参数

若暂时无法升级Bazel,在项目根目录的.bazelrc中添加以下配置,让Clang忽略未知参数错误:

build --copt=-Wno-error=unknown-argument
build --host_copt=-Wno-error=unknown-argument
build --copt=-Qunused-arguments
build --host_copt=-Qunused-arguments

或精准包装参数为Clang可识别格式:

build --copt=-Xclang -fno-canonical-system-headers
build --host_copt=-Xclang -fno-canonical-system-headers

3. 重置Xcode命令行工具配置

确保Xcode工具路径正确且授权完整:

sudo xcode-select --reset
sudo xcodebuild -license accept

验证

重新执行构建命令,确认错误消失:

./bazel build //src/secrets/...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:02:39