centos下安装grpc

我是做c++ linux下开发的,主要接触socket,有时候也需要用到grpc,grpc主要用在远程调用数据库部分。在centos下安装grpc还是有点坑的,如果没有专业的指导很难顺利安装。

  1. 下载grpc

https://github.com/grpc/grpc/releases

去这个网址下载tar.gz格式的安装包。我下载的是grpc-1.51.1.zip。

解压文件,比如解压到:/usr/local/src/grpc-1.51.1

  1. 安装依赖包

yum install -y build-essential autoconf libtool pkg-config

下面这些依赖包,都必须把代码放到grpc-1.15.1/third_party/的对应目录下!!

  1. 安装protobuf

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

我下载的是protobuf-21.12.tar.gz。

安装过程如下:

(1)tar -zxvf protobuf-21.12.tar.gz

(2)把解压后的源代码放到/grpc-1.51.1/third_party/protobuf目录。

(3)cd third_party/protobuf

(4)./autogen.sh

(5)./configure

(6)make && make install

  1. 安装re2

https://github.com/google/re2

我是直接用:git clone https://github.com/google/re2.git下载的。

把源文件下载到 /grpc-1.51.1/third_party/re2目录。

make && make install安装即可。

  1. 安装abseil-cpp

https://github.com/abseil/abseil-cpp

可以直接用: git clone https://github.com/abseil/abseil-cpp.git下载,也可以下载tar.gz包。

下载后,把源文件加压缩到

/grpc-1.51.1/third_party/abseil-cpp/文件夹下面。

  1. 安装cares

https://github.com/c-ares/c-ares/releases

我下载的是c-ares-1.18.1.tar.gz,解压缩后放至目录/grpc-1.51.1/third_party/cares/cares目录下(这里的目录是/cares/cares/)。

  1. 安装zlib

http://www.zlib.net/fossils/

解压缩后放至/grpc-1.51.1/third_party/zlib目录。

./configure

make & make install 安装

  1. 真正关键的步骤来了

因为你这时进入grpc-1.51.1目录,执行cmake, make,八成是失败的!

正确的做法是这样的:

(1)cd grpc-1.51.1

(2)mkdir _build && cd _build

(3)

cmake -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DgRPC_SSL_PROVIDER=OpenSSL \

-DProtobuf_INCLUDE_DIR=/usr/include/protocols \

-DProtobuf_LIBRARY=/usr/local/lib/libprotobuf.so \

-DProtobuf_PROTOC_LIBRARY=/usr/local/lib/libprotoc.so \

-DProtobuf_PROTOC_EXECUTABLE=/usr/local/bin/protoc ..

(4)make -j$(nproc)

注意,如果在make时报abseil 相关的错,可能是gcc版本问题引起的。需要先执行这2个命令:

export CC=/usr/local/bin/gcc

export CXX=/usr/local/bin/g++

保证编译时用的gcc版本是7.1以上的。

(5)make install

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值