无法在装有VS2017的Windows 10上安装和使用GRPC C/C++

Unable to install and use gRPC C/C++ on windows 10 with VS2017(无法在装有VS2017的Windows 10上安装和使用GRPC C/C++)
本文介绍了无法在装有VS2017的Windows 10上安装和使用GRPC C/C++的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道我在这里问的问题看起来有点愚蠢,但它仍然是一个开放式的问题,肯定会对很多人有所帮助。

问题:-在Visual Studio 2017和Windows 10 64位中安装和使用GRPC C/C++的方法是什么。

文档说要使用CMAKE,但提供的有关如何实际构建GRPC的信息非常少。

如果有人能一步一步地指导我如何安装GRPC,将对我和其他刚接触GRPC并试图构建它的人非常有帮助。

提前感谢!

推荐答案

我最近自己也遇到了这个问题,我想提出我的解决方案,尽管这个问题有点老了。

有可用的vcpkg程序包,但其版本已过时。因此,我使用VisualStudio2017在Windows上从头构建并安装了GRPC。官方documentation给出了一些提示,但在细节上相当含糊。我将在下面列出所有步骤,其中一些是从上述文档中复制的:

必备条件

  • Visual Studio(2015年或更高版本应该可以)
  • Git
  • CMake(确保在安装过程中将CMake添加到系统路径中)

获取GRPC

  1. 克隆GRPC存储库:

    git clone -b RELEASE_TAG_HERE https://github.com/grpc/grpc
    

    RELEASE_TAG_HERE替换为您选择的版本标记,例如v1.42.0是当前最新的

  2. 加载其依赖项:

    cd grpc
    git submodule update --init
    

从源生成GRPC

  1. 创建生成目录并转到该目录:

    mkdir .build
    cd .build
    
  2. 使用CMake:

    生成Visual Studio项目结构

    对于Visual Studio 2015:

    cmake .. -G "Visual Studio 14 2015"
    

    或适用于Visual Studio 2017:

    cmake .. -G "Visual Studio 15 2017"
    

    我无法为较新版本的Visual Studio测试它,但它应该可以相同的工作。

  3. 在Visual Studio中打开新创建的解决方案grpc.sln(位于.build目录中)

  4. 选择所需的解决方案配置(调试、发布...)并生成解决方案。

安装GRPC

这是很难理解的部分,尽管它相当容易。

  1. 以管理员权限启动Visual Studio并加载grpc.sln

  2. 在解决方案资源管理器中搜索项目INSTALL

  3. 生成INSTALL项目

  4. GRPC现在安装到:

    C:Program Files (x86)grpc
    
  5. C:Program Files (x86)grpcin添加到系统路径

在项目中使用GRPC

  1. 添加GRPC头文件:

    右键单击项目->;属性->;配置属性->;C/C++->;常规->;其他包括目录

    编辑此属性并添加行C:Program Files (x86)grpcinclude

  2. 添加GRPC库:

    右键单击项目-&>属性-&>配置属性->;链接器->;输入-&>其他依赖项

    编辑此属性并添加行C:Program Files (x86)grpclib*.lib

    这将把所有GRPC库添加到项目中。

    或者,您也可以在";其他库目录中添加lib目录,并在";其他依赖项中单独列出每个.lib文件,但在我看来,这样做太难键入了。

  3. 您的项目构建时应该没有错误。确保您使用的解决方案配置与您用于GRPC内部版本的相同。

我希望这本相当详细的指南对你们有帮助!

这篇关于无法在装有VS2017的Windows 10上安装和使用GRPC C/C++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

socks4 with asynchronous boost::asio(带有异步Boost::ASIO的socks4)
Boost ASIO HTTP client POST(增强ASIO HTTP客户端开机自检)
asio::strandlt;asio::io_context::executor_typegt; vs io_context::strand(Asio::strandlt;asio::io_context::executor_typegt;VS io_CONTEXT::Strand)
What#39;s the difference between asio::io_context and asio::thread_pool?(ASIO::IO_CONTEXT和ASIO::THREAD_POOL有什么区别?)
How to use boost::asio with Linux GPIOs(如何在Linux GPIO中使用Boost::ASIO)
Boost asio io_service vs io_context(增强ASIO io_服务与io_Context)