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


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

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.youkuaiyun.com/w13l14/article/details/118155498
https://blog.youkuaiyun.com/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项目的编译。
在这里插入图片描述

编译安装

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.youkuaiyun.com/w13l14/article/details/118155498

Log

window:

linux:
export GRPC_TRACE=all
export GRPC_VERBOSITY=debug

### Ubuntu 编译安装教程 在Ubuntu上进行编译安装通常涉及以下几个方面:准备环境、获取源代码、配置构建选项以及完成实际的编译安装过程。以下是针对不同场景下的具体操作说明。 #### 准备开发环境 为了成功编译任何软件包,首先需要确保系统已安装必要的依赖项。可以运行以下命令来更新系统的包管理器索引并安装基本的构建工具: ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential git wget curl autoconf automake libtool pkg-config ``` 对于某些特定的应用程序可能还需要额外的支持库。例如,在处理32位应用程序时需安装相应的多架构支持文件[^2]: ```bash sudo apt-get install lib32z1 ``` #### 解压源代码 如果下载的是压缩格式的源代码,则需要用合适的解压工具将其展开到目标目录下。比如内核源码可以通过`tar`命令提取至指定位置[^1]: ```bash sudo tar -xvf linux-5.10.195.tar.xz -C /usr/src/ ``` #### 配置构建参数 大多数开源项目都采用CMake或者Autotools作为其构建系统的一部分。这里以gRPC为例展示如何设置自定义前缀路径来进行本地化部署[^3]: 进入工作区后创建一个新的子文件夹用于存放临时生成物,并调用cmake脚本来初始化所需条件: ```bash cd grpc mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr/local .. ``` 接着就可以启动make进程执行真正的组装动作了, 使用-j标志可加速这一阶段(数值代表并发线程数): ```bash make -j$(nproc) ``` 最后一步就是把最终产物复制到预设好的地方去: ```bash sudo make install ``` #### 特殊情况——Qt框架的手动搭建 当涉及到图形界面开发套件如Qt的时候,事情会变得稍微复杂一点因为它们往往附带了大量的插件模块还有跨平台特性要考虑进去[^4]。假设我们要尝试从零开始建立qtbase组件的话: 先克隆官方仓库下来然后切换分支定位版本号: ```bash git clone https://code.qt.io/qt/qt5.git qt5 cd qt5 git checkout v5.15.13 ./init-repository --module-subset=qtbase,qtsvg,qttools,qtdeclarative,... ``` 之后再按照惯例做一遍configure/make/install三部曲之前记得调整好qmake.conf里的设定值满足个人需求就好啦! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值