grpc记录(一)windows下使用Qt的MinGW编译grpc

1.编译环境

以下是我是用的编译环境:
操作系统:windows10
Qt:5.15.2
CMake:3.22.1 https://cmake.org/download/
Git:2.31.1 https://git-scm.com/
NASM:2.14.02 https://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D
注: Qt安装完成后,需要配置环境变量

在这里插入图片描述

2.grpc源码下载

grpc源码地址:https://github.com/grpc/grpc
打开git bash,克隆grpc源码:

git clone git@github.com:grpc/grpc.git

3.下载子模块

grpc源码下载完后,找到源码根目录下的.gitmodules文件,文件中是grpc编译所需要的子模块。

子模块
为提高下载成功率,将文件中的url由https地址改为ssh地址,即将https://替换为ssh@,将.com/替换为.com:

子模块
下载子模块

cd grpc
git submodule update --init
#如果某个子模块下载失败,则可多次执行下方命令
git submodule update --recursive

当然,也可以自己下载子模块,copy到./grpc/third_party中对应的子模块目录中。

4.cmake构建

在grpc目录下新建mingw64文件夹,打开CMake,选择源码路径和构建路径。

CMake
点击Configure按钮,在弹出框中选择MinGW Makefiles,点击Finish按钮。

MinGW Makefiles
配置完成,显示Configuring done

Configure
点击Generate按钮,生成Makefile文件,显示Generating done

Generate

5.编译

点击开始,找到Qt目录,找到Qt5.15.2(MinGW 8.10 64-bit),右键选择以管理员身份运行(安装时需要管理员身份)

MinGW
进入mingw64目录,执行mingw32-make

mingw32-make
编译完成

编译完成

6.安装

编译完成后,执行命令

mingw32-make install

安装路径

至此,windows下使用MinGW编译grpc完成。

补充

我用Qt5.12也编译过grpc,但是在编译过程中会报错,原因是我通过git submodule下载的protobuf版本是3.19,Qt5.12的MinGW的版本太低,导致编译出错。因此手动下载protobuf3.16的版本,copy到./grpc/third_party/protobuf中,重新编译即可。


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