我是做c++ linux下开发的,主要接触socket,有时候也需要用到grpc,grpc主要用在远程调用数据库部分。在centos下安装grpc还是有点坑的,如果没有专业的指导很难顺利安装。
-
下载grpc
https://github.com/grpc/grpc/releases
去这个网址下载tar.gz格式的安装包。我下载的是grpc-1.51.1.zip。
解压文件,比如解压到:/usr/local/src/grpc-1.51.1
-
安装依赖包
yum install -y build-essential autoconf libtool pkg-config
下面这些依赖包,都必须把代码放到grpc-1.15.1/third_party/的对应目录下!!
-
安装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
-
安装re2
我是直接用:git clone
https://github.com/google/re2.git
下载的。
把源文件下载到 /grpc-1.51.1/third_party/re2目录。
make && make install安装即可。
-
安装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/文件夹下面。
-
安装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/)。
-
安装zlib
解压缩后放至/grpc-1.51.1/third_party/zlib目录。
./configure
make & make install 安装
-
真正关键的步骤来了
因为你这时进入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