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

C++ gRPC服务Stub未生成:protoc仅编译消息不生成服务类求助

问题原因与解决方法

你当前的编译命令只指定了--cpp_out参数,这只会让protoc生成Protobuf消息对应的C代码,不会生成gRPC服务类——gRPC的服务框架代码需要依赖gRPC官方提供的C插件来生成,protoc本身不负责这部分工作。

解决办法很简单,修改编译命令,添加gRPC相关的生成参数:

  • 首先确认你已经拿到了grpc_cpp_plugin.exe(这个是gRPC为C提供的protoc插件,用来把proto里的服务定义转成C服务代码)
  • 用下面的命令重新编译:
    protoc -I=".\protos\" --cpp_out=".\protos\" --grpc_out=".\protos\" --plugin=protoc-gen-grpc="你的grpc_cpp_plugin.exe实际路径" ".\protos\mathtest.proto"
    
    把命令里的你的grpc_cpp_plugin.exe实际路径替换成真实路径,比如从源码编译gRPC的话,插件一般在grpc/build/bin目录下;如果是用包管理安装的,找对应工具链的bin目录即可。

执行完这个命令后,你会发现多了两个文件:mathtest.grpc.pb.h和mathtest.grpc.pb.cc,这两个文件里就包含了你需要的Mathematics服务类,包括客户端调用的存根和服务端需要实现的抽象类。

另外注意,后续编译项目时,要把这两个grpc相关的文件也加入编译列表,并且链接gRPC的库文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:54:22