1:安装相关工具包:
$ sudo apt-get install autoconf automake libtool curl make g++ unzip
2:下载源码,可以到网站https://github.com/protocolbuffers/protobuf/releases/latest选择自己需要的版本,也可以使用git clone下载
:
这里选择到网站自己下载:https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protobuf-csharp-3.14.0.tar.gz
3:选择安装位置[可选]:
./configure --prefix=/home/liu/Desktop/Protobuf/pb
注意:上述命令可替换为
./configure
则默认安装位置在:/usr/local
4:编译安装
make make check sudo make install sudo ldconfig # refresh shared library cache.
注意:即使"make check"失败,仍然可以继续执行后续步䠫,只是有可能protobuf库的某些特性不能正确的使用!
安装成功后pb文件内容:
使用例子:
1:编写People.proto文件
package demo; message People { required string name = 1; required int32 id = 2; required string email = 3; }
2:使用上面生成安装成功的编译器(在安装目录bin里面的protoc可执行文件)编译.proto文件
在这里本人将Prople.proto文件放在了bin目录下,并执行了命令,然后生成相应的.cc和.h文件:
./protoc -I=. --cpp_out=. People.proto
3:使用[在Clion]:
c++文件:
#include "pbcch/People.pb.h" #include <iostream> #include <string> using namespace demo; using namespace std; int main() { People sendpeople; sendpeople.set_email("liudd3610@163.com"); sendpeople.set_name("FF"); sendpeople.set_id(18); char bt[sendpeople.ByteSizeLong()]; memset(bt,0,sendpeople.ByteSizeLong()); sendpeople.SerializePartialToArray(bt,sendpeople.ByteSizeLong()); cout << "------network------" << endl; char recvbt[1024]; int recvsize = sendpeople.ByteSizeLong(); memset(recvbt,0,1024); strcpy(recvbt,bt); People recvpeople; recvpeople.ParseFromArray(recvbt,recvsize); cout << recvpeople.email() << " " << recvpeople.name() << " " << recvpeople.id() << endl; return 0; }
项目结构截图:
注意:Include,Lib文件夹下的内容均复制于上述的安装目录pb下。