1.获取源码:位于github上

电脑装有git的直接克隆,未装git下载压缩包也可以
git clone  https://github.com/grpc/grpc.git
cd grpc
git submodule update --init  这条命令在我电脑上不起作用,我采用的办法是,对着grpc文件夹点击鼠标右键,选择
【tortoiseGit】->选择【更新子模块】,如果没有安装Git可以点开github上grpc\third_party目录,可以看到grpc外部链接的子模块的地址,一个个下载即可
 
2.下载依赖包:opensll 和zlib
个人习惯用vs,那我们开始编译,编译之前需要下载nuget,要下载windows的.exe后缀,网上大多说的都是结合vs的,是错误的,地址:https://dist.nuget.org/index.html,不需要安装,将该文件至于环境变量目录下,即可执行nuget命令,用于依赖包的网络下载。主要是依赖于openssl和zlib库。

1:cd grpc   cd vsprojects

2:nuget restore grpc.sln,在vs命令行窗口执行这句,dos窗口我没试过,不知道是否也可以

3.下载gmock

cd grpc\third_party\protobuf

下载gmock: git clone -b release-1.7.0 https://github.com/google/googlemock.git gmock

cd gmock :git clone -b release-1.7.0 https://github.com/google/googletest.git gtest

上述两个包下载如果没有安装git,直接去下载压缩包

4.下载界面版的cmake

由于probuf没有.sln文件,我下载了界面版cmake,个人认为界面版的cmake不要安装,还比命令行好用,cmake中选择vs std 14 2015即可,后面讲下使用cmake时指定的两个目录:资源目录为有CMakeList的目录,即:third_party\protobuf\cmake,生成sln的目录:grpc\third_party\protobuf\cmake\build\solution,为什么是这个目录呢?

因为后面grpc会用你编译的库,你指定这个目录就不用修改【附加库目录】了,如果你生成库为debug版本,后面多个d,则去掉

5.开始编译protobuf,

打开sln,用vs2015编译即可,这个应该是非常顺利的,不会有什么错误,生成的debug库最好去掉‘d’,比如:libprotobufd.lib改为libprotobuf.lib

6.开始编译grpc和grpc插件

cd grpc\vsprojects 打开工程既可,编译即可

我只遇到了个错误:error1189,在【预处理器】定义中添加_WIN32_WINNT=0x600,如果报什么链接错误就简单了,大家可以自行查出缺少了哪些库,如果你搞不清库应该放在哪个路径,你可以直接指定库的目录,最后有个关于grpc++dll的子项目没有通过,不用管,因为我们要用的是grpc和grpc++

7.集成

建议大家先采用官方的实例集成,目录:grpc\examples\protos,生成c++文件
官方说明:http://doc.oschina.net/grpc?t=57966
生成命令:在dos里执行即可
$protoc -I ../../protos --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` ../../protos/route_guide.proto
$protoc -I ../../protos --cpp_out=. ../../protos/route_guide.proto
为什么要采用官方的例子,请看下面说明:
这里我遇到个大坑,java同事把的proto文件发给我,我直接用,怎么集成都有编译错误,注意这里是编译错误,我开始怀疑上面我做错了哪一步,后来把他的proto里的代码拷贝到官方的route_guide.proto,调成和官方一样的格式,比如空格等,后来集成成功,因为这个问题,我反复编译了好几次
grpc等等,浪费了大量时间
如果集成遇到了链接错误:则将对应的库强制包含里面,
include:
libs:
zlib和ssl的库我是通过nuget下的教程,https://www.nuget.org/packages/openssl/
方法一:在VS中用nuget控制台执行命令即可,这个网上有大量教程,简单易用,方法二:你可以自己cmake或者下载
集成demo如下:我的demo有几层命令空间,如果不好理解,请大家参照上面官方的示例

vs2015编译使用GRPC的更多相关文章

  1. grpc vs2015编译

    获取gRPC源码 gRPC是开源框架,项目代码在github上,所以首先要安装github.github安装后,在指定文件夹中,执行git命令就可以获取gRPC的所有源码. git clone  ht ...

  2. VS2015编译boost1.62

    VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...

  3. VS2015编译Qt5.7.0生成支持XP的静态库(很不错)

    一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...

  4. Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)

    Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...

  5. 用VS2015编译sqlcipher

    简介 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌入式的,而且目前已经在很多嵌 ...

  6. 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集

    上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...

  7. VS2015编译FFMPEG,修改FFmpeg缓冲区大小解决实时流解码丢包问题,FFmpeg错误rtsp流地址卡死的问题,设置超时

    之前尝试过很多网上利用Windows编译FFmpeg的文章,都没有办法编译X64位的FFmpeg,有些教程中有专门提到编译64位的FFmpeg需要下载mingw-w64-install,但是编译的过程 ...

  8. vs2015编译caffe

    有些时候,需要在python3的环境下import caffe,需要用vs2015在python3的环境下,编译pycaffe. microsoft的windows版本的caffe,依赖的库Nuget ...

  9. 使用VS2015编译xlslib库

    环境: win7_x64,VS2015 开始: 一.下载xlslib库 xlslib-package-2.5.0.zip 解压到一个指定目录,如E:\library\xlslib-package-2. ...

随机推荐

  1. crontab与系统时间不一致

    将线上数据库迁移至虚拟机后,运维没有把时间修改. 在后期把时间修改完成后,在数据库上也要修改修改,但是定时任务的备份时间却不在凌晨4点执行,而是在中午12:10分执行. 原因是修改时间后,需要重启cr ...

  2. dubbo之结果缓存

    结果缓存,用于加速热门数据的访问速度,Dubbo提供声明式缓存,以减少用户加缓存的工作量. lru 基于最近最少使用原则删除多余缓存,保持最热的数据被缓存. threadlocal 当前线程缓存,比如 ...

  3. 安卓代码迁移:Make.exe: *** [***.o]Error 1

    描述:NDK开发中显示,windows环境下NDK开发 解决办法:查找系统环境变量,找到关于Cygwin的环境变量或其他无效的环境变量删除处理.

  4. (转)Bootstrap 之 Metronic 模板的学习之路 - (4)源码分析之脚本部分

    https://segmentfault.com/a/1190000006709967 上篇我们将 body 标签主体部分进行了简单总览,下面看看最后的脚本部门. 页面结尾部分(Javascripts ...

  5. Ubuntu 16.04安装和卸载软件命令

    安装软件 apt-get install softname1 softname2 softname3…… 卸载软件 apt-get remove softname1 softname2 softnam ...

  6. Robot Framework(五)使用测试库

    使用测试库 测试库包含那些最低级别的关键字,通常称为 库关键字,实际上与被测系统交互.所有测试用例总是使用某些库中的关键字,通常是通过更高级别的用户关键字.本节介绍如何使用测试库以及如何使用它们提供的 ...

  7. Python学习教程(Python学习视频_Python学些路线):Day06 函数和模块的使用

    Python学习教程(Python学习视频_Python学些路线):函数和模块的使用 在讲解本章节的内容之前,我们先来研究一道数学题,请说出下面的方程有多少组正整数解. $$x_1 + x_2 + x ...

  8. 【转载】java文件路径问题及getResource和getClassLoader().getResource的区别

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012572955/article/details/52880520我们经常在java的io操作中读 ...

  9. scrapy爬虫--10分钟入门

    # -*- coding: utf-8 -*- # @Time : 2019/4/18 9:10 # @Author : wujf # @Email : 1028540310@qq.com # @Fi ...

  10. atcoder.keyence2019.contest E-Connecting Cities

    真是道好题啊,当时怎么想都没想出来... 传送门 简述题意: 有n个点,每个点有一个权值Ai,连接i,j两个点的代价是 |i−j|×D+Ai+Aj  其中D是给定的常数,问把n个点联通的最小代价 1≤ ...