由于实习工作需要进行protobuf2.6进行跨平台数据传输,Windows上配置起来稍微麻烦一些,还有点小坑,工作中用的是Protobuf2.6,我一直用在是Protobuf3.9,开始以为proto3与proto2不兼容,实际试了一下,proto3可以兼容proto2。
下载链接
- Protobuf源码 :github下载链接
- 本人下载的是Protobuf3.9.0
安装过程
- 下载cmake windows工具(并将bin目录加入到path)
- Cmake下载链接,我用的64位版本,看你的电脑配置
- 打开你的cmd命令行,进入protobuf-3.9.0文件夹下
- 进行编译,注意:Win64版本编译出来是64位,不加该字符默认32位;-Dprotobuf_BUILD_TESTS=OFF一定要加上,否则编译不通过
cd cmake
cmake -G "Visual Studio 15 2017 Win64" -Dprotobuf_BUILD_TESTS=OFF
- 打开生成的工程。分别使用debug/release方式编译安装
- 右键ALL_BUILD选择编译
- 最终生成链接库lib文件如下
配置应用
- 新建工程
- 拷贝protoc.exe到工程目录
- 工程目录新建立TestOfProtobuf.proto(用记事本新建即可),内容如下:
syntax="proto3";
package Vehicle;
enum Type{
UNKNOWN=0;
Car=1;
Bus=2;
}
message Info{
int32 id=1;
string name=2;
int32 speed=3;
Type type=4;
float accel=5;
}
- cmd命令行cd到当前工程目录,执行如下命令:
protoc.exe TestOfProtobuf.proto --cpp_out=./
- 生成如下文件:
- 配置工程中的头文件目录与lib依赖:
- 如下,编译自己的工程即可