问题标签 [protoc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4780 浏览

go - 如何为一元 rpc 定义响应标头

在 Go 中,我想从我的 rpc 处理程序实现中设置一些响应标头。具体来说,我想设置一些与缓存控制相关的标头。

但是,当 rpc 被定义为一元响应时,protoc 生成的方法签名只包括请求上下文和请求消息。这与从流响应生成的代码形成对比,流响应包括请求消息和grpc.ServerStream.

下面是一个由 protoc 生成的示例接口:

在示例中,GetPostsincludesCms_GetPostsServer参数grpc.ServerStream似乎包含设置自定义响应标头的方法https://godoc.org/google.golang.org/grpc#ServerStream(我还没有尝试过,所以如果这是错误的,请纠正我)。

同时,GetPost似乎没有任何方法可以通过查看方法签名来设置响应标头(context.Context 只是请求上下文,而不是响应上下文)。那么如何为一元响应设置自定义响应标头?

0 投票
5 回答
3460 浏览

go - Win10,戈兰。协议 -I 。--go_out=plugins=grpc: . proto/hello/hello.proto .: 权限被拒绝

软件环境:Win10、Goland。
去版本:go1.9.1 windows/amd64。protoc --version: libprotoc 3.5.1 当我执行命令时。结果如下

我试图以管理员身份运行。我可以完全控制所有文件。现在我该怎么办。

0 投票
1 回答
1211 浏览

protocol-buffers - 运行 protoc 时是否可以指定输出版本?

我正在开发一个必须为使用谷歌协议缓冲区版本 3.0.0 的目标进行交叉编译的应用程序。有没有办法在 protoc 命令(或 .proto 文件)中指定生成的代码应该与协议缓冲区版本 3.0.0 兼容,即使我用来生成代码的 protoc 是更高版本(例如 3.5.1 )?

更新目标不是一种选择,我不介意在我的开发环境中安装 3.0.0,但是说任何想要构建此代码的人都必须安装特定版本的协议缓冲区似乎有点笨拙。

0 投票
1 回答
346 浏览

python - protoc 可执行文件无法在 tensorflow 模型中找到对象检测 .protos 文件

我正在尝试通过 tensorflow 使用对象检测 api,但无法正确安装。我在互联网上查找了所有解决方案,一切都是徒劳的。以下是我收到的错误消息:

“C:\Program Files\protoc-3.5.0-win32\bin\protoc.exe” object_detection/protos/*.proto --python_out=。

object_detection/protos/*.proto: 没有这样的文件或目录

0 投票
1 回答
976 浏览

java - Hadoop 3.1 构建在“protoc --version”失败

我正在尝试从其源代码编译 Hadoop 3.1。一旦进入 docker 容器,我将按照BUILDING.txtHadoop 源代码文件中包含的说明使用 maven 构建它。在Apache Hadoop Common ............................... FAILURE [ 0.458 s]尝试构建时,我收到以下错误,关于protoc --version

但是,该protoc命令正在我的安装中运行:

protoc3.0 版也发生了同样的事情。

有人经历过类似的事情吗?

0 投票
2 回答
443 浏览

java - gRPC 协议编译器创建的不是预期的

我从 gRPC 开始构建一个简单的 Java 聊天程序。

protc --version 打印 libprotoc 3.5.1

-proto 文件:

//文件结束

  1. 为什么我需要设置选项 java_generic_services ?

    class ChatImpl extends grpc.Verbindung { @Override public void chatService(RpcController controller, ClientPost request, RpcCallback done) { // 为什么我得到这种服务?} }

// 2. 为什么我得到另一个类名?关闭 VerbindungImplBase

预期功能

  1. 我必须做什么才能获得这种预期的服务功能?

可能是错误的协议编译器/错误的安装/缺少零件?

0 投票
0 回答
267 浏览

grpc - 未从 proto 获取本机 java 中的方法名或类名

我创建了一个原型文件

当我为 golang 生成代码时,我可以在 test.pb.go (protoc --go_out=plugins=grpc:.test.proto) 中看到 GetGreetingMethod 方法

但是当我生成java代码(protoc dir/test.proto --java_out=proto)时,我得到了我找不到我的rpc函数的文件。
同样可以在这里检查。有什么建议吗?

0 投票
2 回答
2158 浏览

protocol-buffers - 如何将我自己的代码从 proto 文件添加到 JAVA 生成的类中?

我正在使用 protobuf,并且正在从以下 proto 文件生成 JAVA 类。

现在我需要向生成的文件添加一些代码,我发现可以使用自定义插件(https://developers.google.com/protocol-buffers/docs/reference/java-generated#plugins)。我正在尝试用 Java 生成那个插件,就像这样。

然后我跑

问题是,在我的Test.java主要方法中,我不知道如何访问由该选项创建的文件,--java_out以便我可以使用它们的插入点。当前CodeGeneratorResponse,默认实例的 为空(无文件)。

有谁知道我如何CodeGeneratorResponse从 --java_out 获取,以便我可以向生成的类添加更多代码?

提前致谢。

0 投票
1 回答
1360 浏览

go - protoc 命令不适用于 go generate

我有以下 .proto 文件:

使用以下前几行:

然后我正在创建一个带有以下内容的 .go 文件

上面的protoc命令在运行时完美运行(在 下创建bash了一个新命令),但是当我运行时它除了打印命令之外什么都不做。myPkg.pb.gogithub.com/path/to/packagego generate -x -v -n

0 投票
2 回答
5301 浏览

protoc - 如何使用 protoc 将协议缓冲区字符串编码为二进制

我一直在尝试使用 protoc cli 实用程序对字符串进行编码。注意到输出仍然包含纯文本。我究竟做错了什么?

result.out 包含:

protoc 版本 libprotoc 3.6.0 和 libprotoc 2.5.0