问题标签 [protobuf-c]
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.
protocol-buffers - -bash:协议:找不到命令
我正在使用我的 mac 版本:OSX El Capital 10.11.6 我试过这个命令
它不工作,我做了这个步骤:
并且不工作还有其他方法吗?
c++ - protocbuf中未赋值的可选字段如何分配空间
如果我定义:
set_second(0) 然后 serializeToArray() 时的空间大小与 set_second(14353355445) 然后 serializeToArray() 时的空间大小不同
有没有办法让它们具有相同大小的空间?
在其他方面,如何使未分配值的可选字段具有与分配值相同的空间大小?
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.protobuf
jar 在那里。
我的xxx.proto
样子如下——
xxx.java
生成文件时我遗漏了什么吗?我应该如何修复这些编译错误?
c - 如何使用 mingw 在 Windows 中构建 protobuf-c?
我可以在 Windows 中成功构建 protobuf,结果是三个 .lib 文件,但不知道如何在 Windows 中构建 protobuf-c,没有关于它的文档。
c++ - 当消息使用包、导入和字段选项时,是否可以恢复 .proto 文件?
我的目标是从现有的 c++ protobuf 消息中恢复其他人编写的丢失的 .proto 文件。通过使用 Descriptor 和 EnumDescriptor 我能够做到以下几点:
我得到的 logOptionStr 字符串看起来像这样:
和 entityIdStr:
请注意,EntityId 消息包含一些字段选项。如果不解决此依赖关系,我将无法生成可以帮助我恢复 .proto 文件的 FileDescriptor。我怀疑 EntityId 字符串应该如下所示:
是否可以恢复需要附加信息(如包、字段选项和导入)的 .proto 文件?我还需要做什么来恢复 .proto 文件?
c++ - 在 C++ 中更改现有 protobuf 消息的元素
我只是想知道,为什么没有人解决我最近遇到的与 google protobufs 相关的问题,但是经过广泛的谷歌搜索、阅读 google 手册页的文档并在 Stackoverflow-DB 中搜索后,我没有找到解决方案。
我在 Ubuntu 14.04.3 LTS 上使用 proto2-c++-API,通过 cmake 文件使用 gcc/g++ 进行编译。
我有一个从文件中读取二进制(序列化)谷歌协议缓冲区消息的应用程序。然后程序的目的是将消息(没有反序列化)发送到另一个应用程序,该应用程序继续处理实际数据。
我现在想修改一些消息,从文件中读取,以便测试第二个应用程序的功能。不幸的是,我的消息包含很多嵌套消息,所以在反序列化后我必须调用类似
能够处理实际数据。
我现在的问题是,如何在x
不创建另一个类型的消息的情况下更改值message
,我还必须创建所有子消息(a,b,c...
)并将它们分配给相应的前任,如下面的伪代码所示?!
显然,不可能set_value
直接调用message
-objects,分别调用它的子对象message().a().b().c()....x().set_value();
,如对象: 错误:将 xxx 作为 xxx 的“this”参数传递会丢弃限定符
我将不胜感激任何创造性的解决方案,以避免实现new-set_allocated-delete
上面发布的递归代码。
提前致谢
java - 当我尝试在 Jetson TK1 上使用 protoc 3.0.0 alpha 3 和 jdk 1.8 编译 Bazel 0.1.0 时,我遇到了这个 JNI 链接错误
当我尝试在 Jetson TK1 上使用 protoc 3.0.0 alpha 3 和 jdk 1.8 编译 Bazel 0.1.0 时,我在 Building Bazel 工具中遇到了这个 JNI 链接错误。信息:Blaze 版本信息:构建标签:head (@125b349) 构建目标:bazel-out/local_linux-fastbuild/bin/src/main/java/bazel-main_deploy.jar 构建时间:Fri Feb 24 08:29:59 2017 (1487924999) 构建时间戳:1487924999 构建时间戳为 int:1487924999 2017 年 2 月 24 日上午 9:08:10 com.google.devtools.build.lib.runtime.BlazeRuntime 主要信息:使用参数启动 Blaze 服务器 [--max_idle_secs,10800 , --install_base=/home/ubuntu/.cache/bazel/_bazel_ubuntu/install/2dac0f619e9cc270a8fcbda27d4228ba, --install_md5=2dac0f619e9cc270a8fcbda27d4228ba, --output_base=/home/ubuntu/.cache/bazel/_bazel_ubuntu/9a43f1fcce27c7feee2a9f965aa85b05, --workspace_directory=/主页/ubuntu/下载/bazel,--nofatal_event_bus_exceptions, --option_sources=blazerc:] JNI 初始化失败:/home/ubuntu/.cache/bazel/_bazel_ubuntu/install/2dac0f619e9cc270a8fcbda27d4228ba/_embedded_binaries/libunix.so: /home/ubuntu/.cache/bazel/_bazel_ubuntu/install /2dac0f619e9cc270a8fcbda27d4228ba/_embedded_binaries/libunix.so:意外重定位类型 0x03。可能您的安装已损坏;如果此问题仍然存在,请尝试“rm -fr /home/ubuntu/.cache/bazel/_bazel_ubuntu/install/2dac0f619e9cc270a8fcbda27d4228ba”。java.lang.UnsatisfiedLinkError: /home/ubuntu/.cache/bazel/_bazel_ubuntu/install/2dac0f619e9cc270a8fcbda27d4228ba/_embedded_binaries/libunix.so: /home/ubuntu/.cache/bazel/_bazel_ubuntu/install/2dac0f619e9cc270a8fcbded_binaries/libunix8. java.lang.ClassLoader$NativeLibrary 的意外重定位类型 0x03。
android - 如何将最新的 c++ protobuf (3.2) 与 Android NDK 集成/安装?
较早的 protobuf 版本 3.0 很容易集成。但是最新版本 3.2 存在问题。它也简单地编译和构建所有不相关的 Android .cc 文件组件。
如果我们按照git 中 c++ proto的最新分支的路径并按照步骤构建它,那么它会生成 15 MB 的 .SO 文件,与之前的大约 1-2 MB 不同。
如何以最佳方式将最新的 protobuf 集成到 Android?
java - google protobuf可以用于android中C和Java服务之间的通信吗?
我们有一个用 C 编写的带有 c-protobuf 接口和 C++ 包装 API 的遗留协议栈,需要移植到 Android 并使用 AIDL 接口开发 java 服务。所以这里有问题,
我们可以删除 C++ 接口并让 Java 服务通过 protobuf 与 C-native 进程通信吗?
另一种方法是剥离c-protobuf接口,开发JNI接口。protobuf 与 JNI 方法之间的权衡是什么?
据我所知,与 JNI 方法相比,由于 IPC、序列化等,性能将是一个问题。考虑到 Java 和 Android 上下文,这种方法还有其他主要缺点吗?此外,该服务将被多个用户应用程序使用。
c - 在 protobuf-c 中打包重复的字节
所以我试图序列化一个包含字节数组及其大小的结构:
以下代码使用此结构的一个实例,称为msg
.
这是来自.proto
文件:
printf
调用打印出以下内容:
...但如果我不尝试序列化该payload
字段,一切都会按预期工作。那么如何序列化一个repeated bytes
字段呢?它没有包含在protobuf-c
文档中......