linux下编译安装protobuf
linux下编译安装protobuf
1.下载protobuf源码
protobuf源码网址:
https://github.com/google/protobuf/releases
在官网上选择对应的版本下载,压缩包下载可以在线下载之后本地安装,或者在终端通过wget指令下载
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.13.0/protobuf-all-3.13.0.tar.gz
注意:在linux下,可以在home目录下单独建一个文件夹,用来保存各种源码,将编译好的内容放到 /usr/local/ 下面
linux源码编译安装过程一般为配置(configure)、编译(make)、安装(install)三部分,对下载的压缩包,要进行解压缩得到文件夹,配置安装路径后,借助make工具编译并安装。
2.解压缩
tar -zxvf protobuf-all-3.13.0.tar.gz
执行该命令,在压缩包同级目录下会看到解压缩得到的文件夹,这里我对文件夹利用mv命令进行重命名
mv protobuf-3.20.3 protobuf
结果如下图所示
3.配置configure
得到解压缩后的源码后,就要对安装路径进行配置,这里配置过程利用可执行脚本configure来完成,可执行脚本configure就在protobuf文件夹中。
通过指令./configure -help
可查看配置选项,这里主要用--prefix
指定安装路径。
./configure --prefix=/usr/local/protobuf
如果不指定安装路径,源码会被编译安装在默认路径下
可执行文件:/usr/local/bin
库文件:/usr/local/lib
配置文件:/usr/local/etc
其他资源文件:/usr/local/share
通过上面指令指定安装路径后,在/usr/local/protobuf
下会看到bin、include、lib三个文件夹,分别放置可执行文件与库文件
4.编译并安装
依次执行以下命令即可,执行make命令,运行makefile文件,makefile文件指令编译与链接规则,之后执行make install命令,该命令会将protobuf安装到指定路径下。ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享。安装完成后执行ldconfig命令。
make
make install
ldconfig
注意,这段时间需要编译源码,等待时间较长。
5.设置环境变量
在 Linux 系统中,环境变量是用来定义系统运行环境的一些参数,其中环境变量PATH指明命令行解释器搜索用户执行命令的路径,为了保证在系统任何目录下都能使用protoc命令,需要在配置文件中添加相关变量 包括动态库搜索路径、静态库搜索路径、执行程序搜索路径等,添加过程很简单,利用vi 指令打开/etc/profile
文件,在文件末尾添加下面的内容,之后更新环境变量。
#protobuf config
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
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/
vi /etc/profile
source /etc/profile
最后,执行protoc --version
查看protobuf安装的版本,用来检验是否安装成功。
protoc --verison
linux下源码编译安装方法
方法一
注意:使用方法的前提是已经下载好要安装软件对应源码的压缩包
./configure
make
make install
方法二
使用cmake编译安装,进入CMakeList.txt同级目录,建一个build文件夹,之后
cmake ..
make
make install
更多推荐
所有评论(0)