为啥预建的协议缓冲区不包含任何头文件
Posted
技术标签:
【中文标题】为啥预建的协议缓冲区不包含任何头文件【英文标题】:Why prebuilt of protocol buffer doesn't contain any header files为什么预建的协议缓冲区不包含任何头文件 【发布时间】:2019-08-25 05:42:12 【问题描述】:我是第一次使用协议缓冲区。我能够制作和编译 .proto
来自 protoc (protoc-3.9.1-win64) 的文件。但问题是当我想使用
编译文件我收到错误 google/protobuf/*.h 即使我有也找不到
设置包含 ./protoc-3.9.1-win64/include 的路径。
protoc的include文件夹只包含.proto文件
里面没有头文件?
我需要从源代码构建吗?
【问题讨论】:
哪些头文件没有找到? google/protobuf/*h 即#include您已经下载了protoc
编译器的包。
但是,C++ 库位于单独的包中,protobuf-cpp-3.9.1.zip
,其中cpp
代表C++
。也有多个可用于其他语言的包。
【讨论】:
我需要用cmake构建它吗? @Mohit 通常是的,不过我猜你可以从protoc
包中获取二进制库,并从cpp
包中获取头文件。但是因为C++在不同编译器之间并不是完全二进制兼容的,所以还是自己构建比较好。以上是关于为啥预建的协议缓冲区不包含任何头文件的主要内容,如果未能解决你的问题,请参考以下文章
google 的从 c# 到 java 的协议缓冲区 - 协议消息标签的线路类型无效