protobuf:
源码下载路径:https://github.com/protocolbuffers/protobuf/releases/tag/v3.6.1
libcares 库:
源码下载路径:https://c-ares.haxx.se/download/
OpenSSL:
源码下载路径:https://www.openssl.org/source/
zlib:
源码下载路径:www.zlib.net/zlib-1.2.11.tar.gz
编译OpenSSL
首先说明为什么OpenSSL单独编译:因为libcares和protobuf源码当中有CMake工具所需的CMakeLists.txt文件,唯独OpenSSL源码当中没有。请看gRPC中CMakeLists.txt文件中源码:
以上include会去寻找依赖库中源码的CMakeLists.txt文件,如果没有,将CMake出错。所以,我们先编译OpenSSL。
步骤如下:
(1)先安装工具perl:
(2)工具下载地址:https://www.activestate.com/activeperl/downloads
下载下来后直接安装。进入命令模式,输入perl -v 正确显示版本信息,安装成功,能找到命令。
(3)打开vs2015开发人员命令提示:
进入到vs2015安装目录:Microsoft Visual Studio 14.0\VC\bin 目录下执行
vcvars32.bat 命令:
这是初始化vs编译环境。
(4)进入OpenSSL源码目录,依次执行以下命令:
Perl Configure VC-WIN64A no-asm –prefix={ you install path }
VC-WIN64A为windows安装版本,可供选择的版本有:VC-WIN32 | VC-WIN64A | VC-WIN64I | VC-CE,--prefix为安装路径。No-asm表示不适用汇编。
(5)执行 ms\do_ms,无错后执行 nmake –f ms\ntdll.mak
(6)Nmake –f ms\ntdll.mak test,若显示无错则说明生成库成功。
(7)Nmake –f ms\ntdll.mak install
这些步骤执行完成之后OpenSSL库则安装成功,可以去指定的安装目录下面看是否有相应文件生成。
然后将该路径添加到环境变量中
这一步不可省略,因为后续编译gRPC时,CMake命令find_package找不到这个库。
编译gRPC
(1)将准备好的libcares源码放入gRPC源码third_party\cares\cares 目录下:
(2)将准备好的zlib源码放到gRPC源码hird_party\zlib目录下:
(3)将准备好的protobuf源码放到 gRPC源码third_party\protobuf目录下:
(4)打开CMake工具,配置如下图:
(5)点Confgure选择安装的vs编译器:
出现如下界面则说明配置成功,但是ssl.cmake出现警告,gRPC_SSL_PROVIDER is "module" but BORINGSSL_ROOT_DIR is wrong Call Stack (most recent call first):是因为OpenSSL默认是gRPC的模块配置,但是它找不到OpenSSL的源码位置,所以出现警告。
(6)修改SSL编译项,修改它的值为package,这样配置就会去寻找OpenSSL安装库:
(7)修改安装目录:
注:虽然修改了安装目录,但gRPC编译生成的产物任然在CMake配置生成路径下的Release或Debug路径下,需要我们手动拷贝。
(8)点击 Open Project,打开VS工程
(9)先右键ALL_BUILD生成:
(10)然后右键INSTALL生成:
出现下面输出则说明安装成功:
若右键INSTALL时出现错误:
严重性代码 说明 项目 文件 行禁止显示状态
错误 MSB3073 命令“setlocal
"D:\Program Files\CMake\bin\cmake.exe" -DBUILD_TYPE=Debug -P cmake_install.cmake
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1 cmDone
if %errorlevel% neq 0 goto :VCEnd
:VCEnd”已退出,代码为1。INSTALL C:\Program Files
(x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets 133
解决方法:可能是安装路径在C盘下,VS没有创建文件夹权限,请关闭VS工程,使用管理者权限继续打开该工程,重新INSTALL。或将安装路径更改到其它盘,需要重新CMake。
至此,gRPC安装步骤完成。
https://blog.csdn.net/yzheately/article/details/50887512
INSTALL 错误参照上面博客。
https://blog.csdn.net/qq_32245927/article/details/80541388
安装OpenSSL参照上面博客。