google protobuf_CentOS下无sudo安装protobuf的过程

v2-7eeb3220d41a1a2b76e63d60d69854c9_1440w.jpg?source=172ae18b

首先到release页面下载cpp的release:

https://github.com/protocolbuffers/protobuf/releases​github.com

比如这种:

v2-205daf8233a455e774515aa2665f07b9_b.jpg

你可以手动下载后解压,或者:

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protobuf-cpp-3.14.0.tar.gz
tar -zxvf protobuf-cpp-3.14.0.tar.gz
cd protobuf-cpp-3.14.0

检查依赖文件是否齐全:

autoreconf -f -i

否则后续make可能会出现这样的问题:

v2-beecf2dd6dac87f8c82e1ceabdb7bd52_b.jpg

正常的流程是:

./configure --prefix=/usr/local/

但是由于我们没有sudo权限,一方面不能使用bash运行configure,一方面无法写/usr/local/,所以这两个地方都需要做修改:

在./configure前面加上sh,后面的路径换成自己有权限的路径:

sh ./configure --prefix=替换成一个你拥有权限的目录

然后是:

make
make check
make install

即可等待安装完成,其中make和make check耗时较长,如果不愿意等,可以跳过make check 过程。

考虑到我们是在自己指定的目录下安装的,可能该目录没有被添加到本用户的环境变量下,因此可以:

vim ~/.bash_profile

然后把目录路径添加到PATH的最后面:

v2-65401cbda4bb23fd7b4817401c0151e2_b.jpg

当初我弄到这里以为大功告成了,其实后面还有一大堆坑等着我,如果你写了一个protobuf的测试程序用原生g++进行编译,还会遇到大量的问题。

简单的说,你最好把protobuf手动添加到g++寻找头文件的路径、寻找动态、静态链接库的路径,否则后续编译可能会出很多奇怪的问题。当然你也可以在编译时使用-I、-L的命令,也许可以不用设置这些东西:

(这些也是在~/.bash_profile文件中设置的)

# 环境变量,中间用冒号隔开
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:$HOME/protobuf_lib/bin
export PATH

# g++找头文件的路径
CPLUS_INCLUDE_PATH=$HOME/protobuf_lib/include
export CPLUS_INCLUDE_PATH

# 找动态链接库的路径
LD_LIBRARY_PATH=$HOME/protobuf_lib/lib:/usr/local/lib:$HOME/workspace/MouseDB/lib/protobuf/lib
export LD_LIBRARY_PATH

# 找静态链接库的路径
LIBRARY_PATH=$HOME/protobuf_lib/lib:/usr/local/lib:$HOME/workspace/MouseDB/lib/protobuf/lib
export LIBRARY_PATH

# 找pkg_config的路径
export PKG_CONFIG_PATH=$HOME/protobuf_lib/lib/pkgconfig

最后再重新生效一下即可:

source ~/.bash_profile

BTW,如果后续编译出现google::protobuf::之类undefined的问题,请务必再编译时添加

-lprotobuf 

两个参数,比如我的Makefile是这样的:

# proto测试
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值