- 编译工具
- cmake v3.14.2 https://github.com/Kitware/CMake/releases/download/v3.14.2/cmake-3.14.2-win64-x64.msi (建议使用该版本、使用v3.10.0版本构建提示cmake版本过低,使用最新版本v3.20.0配置选项过多花费长时间去研究仍然无法构建成功,无奈只能放弃-期大神出新博)
- ActivePerl https://www.perl.org/get.html
- Golang https://golang.google.cn/
- Nasm v2.13.02 https://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D
- vs2019
除vs2019外,其他都已经已经下载好并有构建好的vs2019 解决方案,见grpc(v1.37.0)源码及编译教程-互联网文档类资源-CSDN下载
- 资源下载
- GRPC源码下载 https://github.com/grpc/grpc.git
- 下载submodules 根据源码中.gitmodules文件内容逐一下载,并将其准确的放到thrid-party 的文件夹下
- CMAKE构建VS解决方案
1、配置如下
(1)运行cmake-gui.exe 选择grpc源码及构建路径,
(2)在GO_EXECUTABLE选择百度网盘下载grpc-build-tool(或者golang安装路径)下的go.exe
(3)在PERL_EXECUTABLE选择百度网盘下载grpc-build-tool(perl安装了路径)下的perl.exe
(4)在CMAKE_ASM_NASM_COMPILER选择百度网盘下载grpc-build-tool(Nasm安装了路径)下的nasm-2.13.02-win64/nasm.exe (以x64为例)
(5)INSTALL 默认安装在c盘路径下,可改到其他盘路径下,否则在vs2019 编译安装时会报“error MSB3073: 命令“setlocal””,这时需要以管理员的方式打开vs即可。
(6)单击Configure->Generate ,这里可能会对红色警告及错误提示有点疑问,但是不影响我们成功编译源码,在这里我就没有解决这个两个提示了
(7)vs2019 解决方案,可以看到grpc.sln 解决方案了
- 填坑
没错坑来了
Q1: fatal error C1083: 无法打开包括文件: “openssl/x509.h”: No such file or directory
A1: 这是因为cmake 构建boringssl 时include路径出错了,在需要到include openssl 的项目,属性->c/c++->附加包含目录下,D:\open_tool\GRPC\grpc-1.37.0\third_party\boringssl-with-bazel\src\include --修改--> D:\open_tool\GRPC\grpc-1.37.0\third_party\boringssl-with-bazel\include
需要修改的项目有grpc,grpc++,grpc++_alts
Q2: error MSB3073: 命令“setlocal
A2:以管理员方式启动VS2019即可
- 编译成功
在 C:/Program Files (x86)/grpc 目录下便可以有我们需要的include\lib\bin等文件