centos下安装grpc

  • Post author:
  • Post category:其他


我是做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



版权声明:本文为mars21原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。