protobuf的介绍一大堆,这里就不做详细的介绍了。
安装
-从官网直接下载protobuf 安装到本地
– ubuntu 安装方法
1. sudo apt-get install autoconf automake libtool curl make g++ unzip
centos安装方式和ubuntu一样,下载安装上面的安装包就行
2. 编译安装
git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh
./configure --prefix=/usr/local/protobuf ##prefix 是配置编译目录,不配置会安装在默认的目录
make
make check
sudo make install
sudo ldconfig # 链接动态库.
- 如果配置了安装目录需要设置PATH
在/etc/profile 文件中增加下列几项
$ vi /etc/profile
export PATH=$PATH:/usr/local/protobuf/bin/
export LIBRARY_PATH=/usr/local/protobuf/lib/:$LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/protobuf/lib/:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
- 配置完PATH 使用source /etc/profile更新环境变量。有的linux需要重启。如果source /etc/profile没用就重启下。
$ protoc --version
$ libprotoc 3.13.0
如果能正确显示出版本号就没问题。
使用
这里使用vscode编辑器
- 定义自己的字段,文件后缀为.protoc
具体的文件内容说明请查看文档说明 -
使用protoc进行编译
protoc -I=./ --cpp_out=./ ./main.proto
main.proto 为刚才的.proto文件名称
编译完成后会在当前目录看见两个后缀为.pb.cc 和.pb.h的文件,编写一个main 文件测试下
-
使用g++ 编译
g++ -g -o main ./mian.cpp ./main.pb.cc -I/usr/local/protobuf/include -L/usr/local/protobuf/lib -lprotobuf -pthread
这里记录下自己的cmake 文件
cmake_minimum_required(VERSION 3.6.2)
add_definitions(-std=c++11)
# 设置头文件目录
set(INC_DIR /usr/local/protobuf/include/)
# 设置protobuf目录
set(LIB_DIR /usr/local/protobuf/lib/)
project(main)
include_directories(${INC_DIR})
set(SRC_LIST main.cpp main.pb.cc)
add_executable(main ${SRC_LIST})
target_link_libraries(main protobuf pthread)