grpc原始文件生成到c ++问题

问题描述

我使用协议生成了此协议文件。 protoc -I = C:\ proto --cpp_out = C:\ proto C:\ proto \ test.proto

Syntax = "proto3";

option java_package = "ex.grpc";

package mathtest;

// Defines the service
service MathTest {
    // Function invoked to send the request
    rpc sendRequest (MathRequest) returns (MathReply) {}
}

// The request message containing requested numbers
message MathRequest {
    int32 a = 1;
    int32 b = 2;
}

// The response message containing response
message MathReply {
    int32 result = 1;
}

生成功能的头文件

  virtual void sendRequest(::PROTOBUF_NAMESPACE_ID::RpcController* controller,const ::mathtest::MathRequest* request,::mathtest::MathReply* response,::google::protobuf::Closure* done);

当我基于的示例覆盖此功能时,如下所示:

/Status sendRequest(
        ServerContext* context,const MathRequest* request,MathReply* reply
    ) override {

我做错了什么以及如何生成原型文件

解决方法

更新: 发现需要运行此命令来生成grpc.pb标头:

协议-IC:\ proto --grpc_out = C:\ Users \ alon.h \ grpc.build --plugin = protoc-gen-grpc = C:\ proto \ grpc_cpp_plugin.exe C:\ proto \ test。原始

grpc_cpp_plugin.exe是必需的,可以在grpc git存储库中找到

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...