之前装了visual studio 2019, 运行客户demo,发现使用的visual studio 2022上的grpc库版本,所以又升级安装了vs2022,由于之前已经安装了grpc(基于vs2019 MSVC库),由于grpc版本是由不同的msbuild(visual studio)的MSVC库的版本决定的。所以决定删除掉老的grpc库(vs2019 msvc库),去安装新版本的grpc库(基于vs2022 MSVC库),但移除老grpc库,试了指定vcpkg中grpc port的方法请参考文章vcpkg安装指定版本的库_vcpkg 指定版本-优快云博客,但安装指定版本库时会报错,后来又尝试解决报错,请参考文章2024最新版Vcpkg安装第三方库报错error: building XXXX failed with: BUILD_FAILED_build version: 1.0.3 build date: 2024-05-18 14:06:-优快云博客
尝试多次无果,索性把整个vcpkg目录删除,重新配置vcpkg,再下载grpc lib。
使用清单文件加载依赖文件到项目的做法,请参考文章:vcpkg 从清单文件安装依赖项_vcpkg清单模式-优快云博客
本章节主要讲述怎样在本地使用vcpkg构建基于windows平台的grpc库,不考虑vcpkg的清单模式。
首先什么是vcpkg,请参考文章vcpkg 概述 | Microsoft Learn, 简单来说就是管理各种库并防止库冲突的工具,我们接下来使用它来下载grpc库。请参考在 Visual Studio 中使用 MSBuild 安装和管理包 | Microsoft Learn,这里我们只需使用先决条件的设置vcpkg 1,克隆存储库 2.运行启动脚本,3.与 Visual Studio MSBuild 集成,这里不讨论使用清单模式。其中第2步运行启动脚本,由于网络原因,下载vcpkg.exe会比较慢,经常出现失败的情况,大家可以把最新自己独立下载的vcpkg.exe拷贝到vcpkg目录下,同时也要把vcpkgTools.xml拷贝到vcpkg\scripts目录下。vcpkg安装完成,接下来需要设置vcpkg的环境变量,设置名为VCPKG_ROOT的环境变量,内容是d:\vcpkg。然后就可以安装grpc库了,首先打开visual studio 2022工程文件,选择tools->command line->Developer PowerShell,界面如图1所示:在当前目录下输入命令 vcpkg install grpc:x64-windows,第一次提示:找不到vcpkg\scripts\vcpkgTools.xml,由于网速差,我不是下载的vcpkg.exe,所以也需要拷贝vcpkgTools.xml这个文件到scripts目录下,再次执行命令vcpkg install grpc:x64-windows,成功开始安装了,除了安装grpc的包,还会安装protobuf的包,还有cmake的包,这些lib在这个命令中会统一安装完成,这个过程比较耗时,需要二三十分钟这个样子。
图1
安装过程中,网络状况依然不好,如图2所示,出现好几次buid failed,所以需要重新输入命令:vcpkg install grpc:x64-windows
图2
中间重试了两次安装命令后,最后安装完成了,参见图3。
图3
然后在项目属性中配置上lib, include文件夹,位于D:\vcpkg\installed\x64-window下,具体配置lib及dll的详情,请参考VS 中 c++ 工程添加 lib 库 dll 库及头文件的步骤_vs c++ 使用.lib dll-优快云博客,配置完毕后,rebuild整个项目,如果没有配置缓存,每次rebuild grpc lib需要半个小时左右,请耐心等visual studio 2022编译完成,然后程序就可以启动了。