【ProtoBuf】CentOS7.9 安装 protobuf 教程
·
1. 下载 ProtoBuf
下载 ProtoBuf 前一定要安装依赖库:autoconf、automake、libtool、curl、make、g++、unzip 如未安装,安装命令如下:
- CentOS 选择:
sudo yum install autoconf automake libtool curl make gcc-c++ unzip
- Ubuntu 选择:
sudo apt-get install autoconf automake libtool curl make g++ unzip -y
结果如下:

ProtoBuf 下载地址如下:
https://github.com/protocolbuffers/protobuf/releases
可以不用下载最新版本,具体的下载根据自己电脑情况选择(本文以 v21.1 为例)。

- 如果要在 C++ 下使用 ProtoBuf,可以选择 cpp.zip;
- 如果要在 JAVA 下使用 ProtoBuf,可以选择 java.zip;
- 其他语言选择对应的链接即可。
- 希望支持全部语言,选择 all.zip。
在这里我们希望支持全部语言,所以选择 protobuf-all-21.1.zip,右键将下载链接复制出来。
下载命令:
wget https://github.com/protocolbuffers/protobuf/releases/download/v21.1/protobuf-all-21.1.zip
下载完成后,解压 zip 包:
unzip protobuf-all-21.1.zip
解压完成后,会生成 protobuf-21.11 文件,进入文件:
# 文件重命名
mv protobuf-21.1 protobuf
# 进入文件夹
cd protobuf
内容如下:

2. 安装 ProtoBuf
进入解压好的文件,执行以下命令:
# 第一步执行 autogen.sh,但如果下载的是具体的某一门语言,不需要执行这一步。
# 我下载的是 protobuf-all-21.1.zip,所以必须执行这一步
./autogen.sh
# 第二步执行 configure,有两种执行方式,任选其一即可,如下:
# 1、protobuf默认安装在 /usr/local 目录,lib、bin都是分散的
./configure
# 2、修改安装目录,统一安装在 /usr/local/protobuf 下(推荐选第二种)
./configure --prefix=/usr/local/protobuf
再依次执行
make # 大概需要15分钟左右
make check # 大概需要15分钟左右(这一步非必要)
结果如下:

然后再执行
sudo make install
结果如下:

到此,需要你回忆一下在执行 configure 时,如果当时选择了第一种执行方式,也就是 ./configure,那么到这就可以正常使用 protobuf了。
如果选择了第二种执行方式,即修改了安装目录,那么还需要在 /etc/profile 中添加下面的内容:
sudo vim /etc/profile
# 添加内容如下:
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执行程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
结果如下:

最后一步,重新执行 /etc/profile 文件:
source /etc/profile
3. 检查是否安装成功
输入 protoc --version 查看版本,有显示说明安装成功
protoc --version
结果如下:

到此,ProtoBuf 安装成功!
更多推荐



所有评论(0)