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

使用Bazel构建含gRPC的go_proto_library出现未定义符号错误

问题根因

你遇到的编译错误是gRPC代码生成器版本与项目依赖的grpc-go库版本不兼容导致的:
当前生成Go gRPC存根代码的protoc-gen-go-grpc版本输出的是v6版本的存根代码,该版本要求依赖的google.golang.org/grpc库版本≥v1.27.0,低于该版本的grpc-go库不存在grpc.ClientConnInterface接口和grpc.SupportPackageIsVersion6常量,因此触发未定义的编译错误。

修复步骤
  • 升级WORKSPACE文件中grpc-go的依赖版本,建议至少升级到v1.36.0及以上的稳定版本,可完全兼容v6及更高版本的gRPC存根代码,参考配置示例:
go_repository(
    name = "org_golang_google_grpc",
    importpath = "google.golang.org/grpc",
    sum = "h1:fPVVDxY9w++VjTZsYvXWqEf9Rqar/e+9zfxKoXvrWsg=",
    version = "v1.58.3",
)
  • 清理Bazel本地缓存避免旧版本依赖残留,执行命令:bazel clean --expunge
  • 重新执行原来的构建命令即可完成编译。
补充说明

gazelle自动生成的BUILD文件不存在配置问题,该问题确实出在WORKSPACE的依赖版本对齐上,rules_go官方指引的基础配置未包含高版本gRPC生成器的适配要求,手动指定grpc-go的对应版本依赖即可解决。

内容的提问来源于stack exchange,提问作者Juan Enrique Muñoz Zolotoochin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:45:03