gRPC下载编译和安装——Linux/Windows

文章目录

  • 下载
  • 编译
    • Linux
      • 更新cmake version
      • 设置 CMAKE_INSTALL_PREFIX
      • 编译安装
      • 编译example/helloworld
        • 编译error
      • Windows
  • Log

前记:熬夜踩坑,特记于此,以飨后人。
官方文档可以参考:

https://github.com/grpc/grpc/blob/master/BUILDING.md#build-from-source
https://grpc.io/docs/languages/cpp/quickstart/

下载

  1. git clone https://github.com/grpc/grpc.git
    主要问题是速度慢,可以参考:

gRPC编译和安装——Linux版
https://blog.csdn.net/w13l14/article/details/118155498
https://blog.csdn.net/huanglin6/article/details/119799994

  1. 主要有两个办法:
    a. 取消ssl验证:git config --global http.sslVerify false
    b. 改网址:git clone https://gitclone.com/github.com/grpc/grpc.git

  2. submodule 下载:

git clone https://github.com/grpc/grpc.git 
cd  grpc
git submodule update  --init
git submodule update  --init --recursive //确保库下载完全
cd third_party
git submodule update  --init --recursive 

如果速度慢,手动到third_party 下载如下:
git clone https://gitclone.com/github.com/cncf/xds.git
git clone https://gitclone.com/github.com/google/re2.git
git clone https://gitclone.com/github.com/google/protobuf.git
git clone https://gitclone.com/github.com/open-telemetry/opentelemetry-proto.git
git clone https://gitclone.com/github.com/google/googletest.git

编译

Linux

更新cmake version

官方有提醒,不过很容没注意到
在这里插入图片描述
解释下:如果你的CMake低于3.13,那么将无法使用module mode来安装依赖库。
笔者考虑到gRPC的第三方依赖库很多,一个一个安装很累。所以直接选择升级CMake
同时因为不能影响到其它正常使用以前版本的项目,在下载完成后不要instasll
输入:

export $PATH=/opt/cmake_3.24.2/bin:PATH
cmake --version

设置 CMAKE_INSTALL_PREFIX

官方文档上也有醒目的提醒,这样做也有利于之后example项目的编译。
gRPC下载编译和安装——Linux/Windows_第1张图片

编译安装

1.注意使用 -j 利用多处理器来加快编译速度。
2.install因为要写入文件到系统(虽然已经指定了MY_INSTALL_DIR),所以需要sudo -s 取得root权限。

export MY_INSTALL_DIR=$HOME/.local
export PATH="$MY_INSTALL_DIR/bin:$PATH"

cd grpc
mkdir -p cmake/build
pushd cmake/build
cmake -DgRPC_INSTALL=ON \
      -DgRPC_BUILD_TESTS=OFF \
      -DCMAKE_INSTALL_PREFIX=$MY_INSTALL_DIR \
      ../..
make -j
make install
popd

编译example/helloworld

https://grpc.io/docs/languages/cpp/quickstart/#build-the-example

# Change to the example’s directory:
$ cd examples/cpp/helloworld

# Build the example using cmake:
$ mkdir -p cmake/build
$ pushd cmake/build
$ cmake -DCMAKE_PREFIX_PATH=$MY_INSTALL_DIR ../..
$ make -j

编译error

error提示缺少absl 头文件
solution: 将\grpc\third_party\abseil-cpp\absl 中的头文件移动到 $home.local\include\

Windows

建议参考:

https://blog.csdn.net/w13l14/article/details/118155498

Log

window:
gRPC下载编译和安装——Linux/Windows_第2张图片
linux:
export GRPC_TRACE=all
export GRPC_VERBOSITY=debug

你可能感兴趣的:(汽车操作系统,#,gRPC,linux,grpc,c++)