2026 年 1 月 16 日宣布的变更

Protocol Buffers 于 2026 年 1 月 16 日宣布的变更。

预构建的 proto 编译器 (protoc) for Bazel

为了加快构建速度,protobuf 33.4 提供了一个选项,可以跳过重新编译 Protobuf 工具和运行时,并使用预构建的 protoc 二进制文件,该文件适用于 Bazel 7 及更高版本。使用预构建的 protoc 还可以避免因您计算机上安装的不兼容或非封闭的 C++ 编译工具链而导致的构建失败。

要使用预构建的 protoc,请升级到 protobuf 33.4 或更高版本,并设置 --incompatible_enable_proto_toolchain_resolution--@protobuf//bazel/flags:prefer_prebuilt_protoc 标志。第一个标志在 Bazel 9 及更高版本中默认设置。

在破坏性的 v34 版本中,protobuf 将把 --@protobuf//bazel/flags:prefer_prebuilt_protoc 的默认值更改为 true。

不使用预构建编译器的原因

在某些用例中,不建议使用预构建的 protoc

  • 您的公司安全策略要求所有依赖项都必须从源代码构建。
  • 您需要为执行平台使用特定的编译器或特定的编译器标志进行构建。
  • 您正在对 protoc 本身进行更改,并希望确保这些更改得到测试。

故障排除

有关预构建 protoc 编译器配置的故障排除信息,请参阅 Bazel:解决预构建 Protoc 的问题

有关 Bazel 9 中影响 Protocol Buffers 的其他更改的更多信息,请参阅 https://bazel.build/about/roadmap