问题标签 [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 投票
3 回答
25625 浏览

go - 在 gRPC 协议缓冲区 golang 中创建类型为 Map[string]interface{} 的变量

我正在使用 grpc golang 在客户端和服务器应用程序之间进行通信。下面是 protoc 缓冲区的代码。

我需要在消息数据结构中创建一个类型为 map[string]interface{} 的字段 inputVar,而不是 map[string]string。我怎样才能实现它?提前致谢。

0 投票
0 回答
113 浏览

ruby - packed=true 不生成 :packed => true Ruby Google 协议缓冲区

我正在开发一个具有 google 协议缓冲区的 ruby​​ 应用程序。

我的原型文件:

当我运行 protoc 时,它确实会生成正确的 ruby​​ 文件,但是对于重复的 int32 命名答案,缺少 :packed => true 。生成的代码:

我目前认为我的协议没有为 ruby​​ 文件生成正确的东西存在问题。但奇怪的是我有 libprotoc 版本 3.1.0(从源代码构建),项目的 gemfile 也有 3.1.0 版本,除了生成:packed => true 之外,一切正常(编码和制作对象)。有人可以帮助我吗?我到处找,但甚至找不到有同样问题的人。顺便说一句,添加 :packet => true 不起作用,因为谷歌不喜欢那样。

编辑:
我找到了解决方案。我使用这个gem来生成我的 ruby​​ 协议文件。我可以编辑这些文件,而不是编辑 google-protobuf gem 生成的文件,而你不能。然后我通过脚本添加了 :packed => true 。不是最好的解决方案,但它是一个解决方案..

0 投票
1 回答
1511 浏览

windows - 如何在Windows 7的路径中添加protoc.exe

我试过以下:

1.D:\TestWorkSpace\protoc.exe .exe 文件所在的位置。

方法1

方法2

但仍然无法在类路径中添加 protoc.exe。我正在使用一个项目,其中要在开发之前导入 maven 项目,并且先决条件是在类路径中添加 protoc.exe。

请提供您宝贵的建议。谢谢你。

0 投票
1 回答
276 浏览

dart - Dart protobuf:我应该下载什么版本的 protoc?

我正在尝试按照本文中的说明进行操作:

https://www.dartlang.org/articles/libraries/serialization#protobuf-example

第一步是安装协议编译器。我的问题是,我下载哪个版本有关系吗?我是否需要使用 javasript 版本,因为 Dart 将编译为 Javascript?请参阅下面的链接到所有 protoc 下载列表,以了解我的意思:

https://github.com/google/protobuf/releases/tag/v3.0.0

任何建议将不胜感激。抱歉,如果这有一个非常明显的答案-我对此很陌生,并且很难在任何地方找到更多信息。

提前致谢。

0 投票
3 回答
8563 浏览

java - 使用 SBT 构建工具在 Java 中编译 Protobufs 时出现编译错误

我在需要使用 Protobuf 的地方使用带有 Java 的 Play 框架(它使用 SBT 构建工具)。所以我有xxx.proto文件。我得到了二进制协议编译器并添加到类路径中。所以我看到了——

protoc --version
libprotoc 3.1.0

我已经使用 - 编译了 xxx.proto 文件, protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/xxx.proto因此它生成了 xxx.java 文件。

现在当我编译这个 xxx.java 文件时(使用 sbt 构建工具的项目)

我在我安装的库中看到 - com.google.protobufjar 在那里。

我的xxx.proto样子如下——

xxx.java生成文件时我遗漏了什么吗?我应该如何修复这些编译错误?

0 投票
1 回答
2499 浏览

protocol-buffers - 如何从 protobuf 描述符中获取方法选项?

我尝试使用 protobuf 编译器解析 .proto 文件。但这是一个令人困惑的问题,我无法获得方法的选项。

似乎我的选项被视为“未知字段”,而不是选项。

有没有办法解决这个问题?谢谢。

(我讨厌在这里粘贴很多代码,但我认为完整描述问题很重要。对此感到抱歉。)

(环境:g++ 4.7,Ubuntu 16.04,Protobuf 3.0.0)




0 投票
1 回答
1230 浏览

protocol-buffers - protobuf 编译失败,D_GLIBCXX_USE_CXX11_ABI=0

我正在使用 gcc 运行 ubuntu 16.04。

我的q.ccp文件是

用于编译的命令:

protoc --version返回:2.2.0

gcc --版本

编译错误:

但是当我离开这个-D_GLIBCXX_USE_CXX11_ABI=0选项时,我没有得到任何编译错误。但问题是我在不同的系统上运行可执行文件,需要使用此选项编译程序才能运行。

0 投票
1 回答
1266 浏览

maven - protoc jar maven插件intellij没有创建编译的proto文件

我正在尝试在 intelij 中使用protoc jar maven 插件。我已将此添加到我的 pom.xml 中:

我有一个位于src/main/protobuf. 我的 pom.xml 中也有这个:

这是原型:

但是,每当我右键单击我的模块并单击构建,或者如果我转到构建菜单并点击构建项目时,我都看不到任何已编译的 protobuf 文件正在生成。我也没有看到任何错误。有谁知道我做错了什么?

0 投票
1 回答
2442 浏览

java - 如何在 Java 中编写自定义 Protobuf CodeGenerator

我正在尝试为内部专有编程语言编写自定义代码生成器。我想我可以使用 protoc 插件指南用 Java 编写生成器。我的 main() 做这样的事情:

(显然我才刚刚开始;想要在实际编写生成逻辑之前先让一些粗短的东西工作)

问题是:如何使用我的插件调用带有 --plugin 参数的 protoc 以我的自定义语言生成代码?我尝试编写一个 shell 脚本来做到这一点:

我尝试像这样调用 protoc:protoc --plugin=protoc-gen-code --code_out=./build hello.proto但是,当我运行它时,我收到了这个错误:

线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:CodeGeneratorMain.main 中的 0(CodeGeneratorMain.java:12)--code_out:protoc-gen-code:插件失败,状态码为 1。

好像它根本没有在标准输入上传递 CodeGeneratorRequest。我将如何验证?我在做一些明显错误的事情吗?

0 投票
2 回答
1335 浏览

python - 如何为预构建的二进制文件正确安装协议编译器?

我尝试多次安装“protoc-3.2.0-windows-x86_64.exe”,但没有安装。当我双击它时,不会显示任何屏幕。我尝试通过命令行界面打开它。我收到一条消息“缺少输入文件”。 命令提示符上的 Protoc 安装错误

那个丢失的输入文件是什么?我现在该怎么办?请第一时间回复我的问题!