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,选择源码路径和构建路径。
点击Configure按钮,在弹出框中选择MinGW Makefiles,点击Finish按钮。
配置完成,显示Configuring done
点击Generate按钮,生成Makefile文件,显示Generating done
5.编译
点击开始,找到Qt目录,找到Qt5.15.2(MinGW 8.10 64-bit),右键选择以管理员身份运行(安装时需要管理员身份)
进入mingw64目录,执行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中,重新编译即可。