Linux(centos)下编译Protobuf:在root下进行,如果没有root权限,make install会无法mkdir
下载:git clone https://github.com/protocolbuffers/protobuf.git
或者:官方github发布版本链接:https://github.com/protocolbuffers/protobuf/releases
解压:根据自己下载的版本调整
tar zxvf protobuf-cpp-3.12.3.tar.gz
编译:可以直接./configure,生成的protoc在/usr/local/bin目录下,后面会用到
cd protobuf
./configure --prefix=/usr/local/protobuf
make
make check
make install
安装成功,查看版本号:
protoc --version
编写proto文件
1 syntax = "proto3";
2 package Im;
3 message Content
4 {
5 optional int32 id = 1;
6 optional string str = 2;
7 optional int32 opt = 3;
8 }
生成.cc&.h文件
/usr/local/bin/protoc -I=./ --cpp_out=./ Im.proto
报错:
Im.proto: This file contains proto3 optional fields, but --experimental_allow_proto3_optional was not set.
重新编译
/usr/local/bin/protoc --experimental_allow_proto3_optional -I=./ --cpp_out=./ Im.proto