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。