当前位置: 首页 > 知识库问答 >
问题:

谷歌协议编译器不为服务标签生成类?

皇甫礼骞
2023-03-14

我正在尝试使用Prorobuf使用RpcChannel和RpcController生成服务。我参考了谷歌Prorobuf的语言指南,并且:

我有这样的示例原始文件:

语法=“proto2”;

message SearchRequest
{
    required string Request = 1;
}

message SearchResponse
{
    required string Response = 2;
}

service SearchService {
    rpc Search (SearchRequest) returns (SearchResponse);
}

然后我用以下代码进行编译:

protoc --cpp_out=./ examples.proto

我有. h和. cc文件。但是当我搜索生成的代码时,我只找到了“请求”和“响应”的类,而没有找到“搜索服务”的类:

examples.pb.h:class SearchRequest;
examples.pb.h:class SearchResponse;
examples.pb.h:class SearchRequest : public ::google::protobuf::Message {
examples.pb.h:  // @@protoc_insertion_point(class_scope:SearchRequest)
examples.pb.h:class SearchResponse : public ::google::protobuf::Message {
examples.pb.h:  // @@protoc_insertion_point(class_scope:SearchResponse)

语言指南网页提供了一个示例(https://developers.google.com/protocol-buffers/docs/proto#services)这需要使用“SearchService”类:但在生成的代码中,没有搜索服务。该指南没有提供RPC通道/RPC控制器使用的完整示例。

那么我如何修复示例以使其正常工作呢?我搜索了谷歌,但没有找到任何好的cpp示例来提供RpcChannel/RpcController如何工作的完整示例。有任何提示或链接吗?

谢啦!

共有1个答案

潘灵均
2023-03-14

Prorobuf本身不提供RPC实现;您应该使用插件接口来创建自己的,或者使用grpc。

例如,grpc使用grpc\u cpp\u插件。

$ protoc -I ../../protos --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` ../../protos/route_guide.proto

https://github.com/grpc/grpc/blob/master/examples/cpp/cpptutorial.md

 类似资料:
  • 我目前在编译protobuf生成的C代码时遇到了一些问题<代码>协议(code>protoc)运行正常,不会显示任何警告,但是,当我尝试编译生成的C代码以便构建静态库时,g向我显示以下消息: CanInfo。pb。抄送:107:5:错误:“::protobuf\u BusType\u 2eproto”尚未声明107;::protobuf\u BusType\u 2eproto::AddDescri

  • 我刚刚开始玩google proto。当我尝试编译proto java示例中的proto文件时,它不会生成任何grpc文件。 原型文件,https://github.com/grpc/grpc-java/blob/master/examples/src/main/proto/hello_world.proto 终端输出, rsonkhla@raman-OptiPlex-9020:~/sandbox

  • 我正在尝试学习如何在一个新网站上整合谷歌分析和定制事件跟踪。在研究它之后,我似乎无法理解Google Tag Manager和仅仅编写自定义事件跟踪代码之间的区别和关系。 Google Tag Manager是否只是一种更简单的跟踪信息的方法,而无需编写JS?

  • 我正在实施谷歌标签管理器为Android应用程序V4由我的营销团队要求为未来使用,我从来没有在GTM网站,所以我在这方面很天真。 我已经根据官方网站上的说明创建了帐户、容器和标签。我已经将tag manager与google analytics tracking id链接。我已经根据网站上的说明在我的应用程序中编写了代码,并将容器下载到原始文件夹中。 当我运行我的应用程序时,它会在logcat中给

  • 本服务条款(以下简称“本协议”)由北京百度网讯科技有限公司(以下简称“百度”)与您(以下简称“您”或“用户”)订立,用于规范您对百度统计(以下简称“本服务”)的使用。只要您点击 “确定”按钮、完成注册程序或开通、使用本服务,即代表您已理解并同意本协议,特别是以黑体字标示出的关于百度统计及您重大权益的条款均以知晓、理解并接受,同意将其作为确定双方权利义务的依据。如果您不同意本协议,请您立即停止使用本

  • 京东小程序开放平台开发者服务协议 【请认真阅读并理解以下内容,其中以加粗方式显著标识的文字,请着重阅读、慎重考虑】 前言 1、本协议由拟在京东小程序开放平台(以下或简称“京东小程序平台”或“小程序平台”)开发京东小程序(以下或简称“小程序”)的京东小程序开发者(以下简称“开发者”,“乙方”或“您”)与京东小程序开放平台运营方(以下或简称“京东”或“甲方”)共同缔结,具有合同效力。 2、本协议由协议