【ProtoBuf】ProtoBuf安装
文章目录
- ProtoBuf 在 window 下的安装
- 下载 ProtoBuf 编译器
- 配置环境变量
- 检查是否配置成功
- ProtoBuf 在 Linux 下的安装
- 下载ProtoBuf
- 安装 ProtoBuf
- 检查是否安装成功
ProtoBuf 在 window 下的安装
下载 ProtoBuf 编译器
下载地址:https://github.com/protocolbuffers/protobuf/releases
可以不用下载最新版本,博主下载的是 v21.11 ,具体的下载根据自己电脑情况选择。
下载之后将压缩包解压到本地目录下。解压后的文件内包含 bin、include文件,以及一个readme.txt。
配置环境变量
把解压后文件中的bin目录配置到系统环境变量的Path中去。
检查是否配置成功
打开cmd,输入:
protoc --version
查看版本,有显示说明成功
走到这里,恭喜你 ProtoBuf 安装成功!!!
ProtoBuf 在 Linux 下的安装
下载ProtoBuf
下载 ProtoBuf 前一定要安装依赖库:autoconf automake libtool curl make g++ unzip
如未安装,安装命令如下:
Ubuntu 用户选择:
sudo apt-get install autoconf automake libtool curl make g++ unzip -y
CentOS 用户选择:
sudo yum install autoconf automake libtool curl make gcc-c++ unzip
ProtoBuf 下载地址:https://github.com/protocolbuffers/protobuf/releases
可以不用下载最新版本,博主下载的是 v21.11 ,具体的下载根据自己电脑情况选择。
- 如果要在 C++ 下使用 ProtoBuf,可以选择cpp.zip ;
- 如果要在 JAVA 下使用 ProtoBuf,可以选择 java.zip;
- 其他语言选择对应的链接即可。
- 希望支持全部语言,选择 all.zip 。
在这里我们希望支持全部语言,所以选择 protobuf-all-21.11.zip,右键将下载链接复制出来。
下载命令:
wget https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-21.11.zip
下载过程中可能出现一下问题;
第一个:
这是 wget 下载时遇到的SSL 证书验证问题,系统无法验证 github.com 服务器证书的合法性 ,因为本地缺少能验证该证书颁发机构(Sectigo ECC Domain Validation Secure Server CA 等信息对应的机构)权限的相关证书,导致 wget 因安全校验不通过而报错,无法继续正常下载。
两个做法:
1、按提示,添加 --no-check-certificate 参数跳过证书验证,命令改为:
wget --no-check-certificate https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-21.11.zip
不过,跳过证书验证会有安全风险(比如可能连接到伪造站点),更推荐的做法是下面的哦。
2、更新证书库:
在 CentOS/RHEL 系统,可装 ca-certificates 包并更新:
yum install -y ca-certificates && update-ca-trust
Debian/Ubuntu 系统:
apt install -y ca-certificates && update-ca-certificates
更新后再用原 wget 命令,一般可正常验证证书。
注意:若身处特殊网络环境(如代理、防火墙限制),也可能影响证书验证,需排查网络配置。简单场景用 --no-check-certificate
临时解决;追求安全和规范,优先更新证书库来修复验证问题。
第二个:
原因可能有三个:网络带宽 / 延迟;GitHub 访问限制;wget 超时配置。
解决方法有四个:重试或更换网络重试;增加 wget 超时时间;借助代理或镜像;本地浏览器下载后上传。
增加 wget 超时时间:用 -T(设置超时秒数,默认一般几十秒)、–waitretry(重试间隔)等参数延长等待,比如:
wget -T 120 --waitretry=5 https://github.com/protocolbuffers/protobuf/releases/download/v21.11/protobuf-all-21.11.zip
下载完成后,解压zip包:
unzip protobuf-all-21.11.zip
解压完成后,会生成 protobuf-21.11 文件,进入文件:
cd protobuf-21.11
安装 ProtoBuf
进入解压好的文件,执行以下命令:
第一步执行autogen.sh,但如果下载的是具体的某一门语言,不需要执行这一步。
./autogen.sh
第二步执行configure,有两种执行方式,任选其一即可,如下:
1、protobuf默认安装在 /usr/local 目录,lib、bin都是分散的
./configure
2、修改安装目录,统一安装在/usr/local/protobuf下
./configure --prefix=/usr/local/protobuf
3、再依次执行
make // 大概执行 15分钟左右
make check // 大概执行 15分钟左右
sudo make install
有些人可能会在 make check 出现错误,例如:
出现以上错误的原因是test的模块里面有非常多的测试用例,这些用例对服务器环境要求特别严格,需要增大下swap分区。
具体操作可参考: https://blog.csdn.net/AlexWang30/article/details/90341172
(建议可以先扩大3G,再执行 make check 。如果还是报错,再扩大到5G重新执行 make check )
执行 make check 后 ,出现以下内容就可以执行 sudo make install 。
到此,需要你回忆一下在执行configure时,如果当时选择了第一种执行方式,也就是 ./configure
,那么到这就可以正常使用protobuf了。如果选择了第二种执行方式,即修改了安装目录,那么还需要在/etc/profile
中添加一些内容:
1、先命令进入:
sudo vim /etc/profile
2、添加内容如下:
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
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
检查是否安装成功
输入 protoc --version 查看版本,有显示说明安装成功。
root@MyComputer:~/protobuf-21.11# protoc --version
libprotoc 3.21.11
走到这里,恭喜你 ProtoBuf安装成功!!!