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. angualr2之路由与导航(一)

    1. 唯一根模块式组件导航 在唯一根模块式组件导航中,全局只有一个模块,即根模块. 1.1 根模块 在根模块中,需要导入所有组件及其对应的服务,并将组件加入声明,将其对应的服务加入提供商. // ap ...

  2. Windows下使用Caffe-Resnet

    参考文章: 编译历程参考:CNN:Windows下编译使用Caffe和Caffe2 caffe的VS版本源代码直接保留了sample里面的shell命令,当然这些shell命令在Windows平台下是 ...

  3. End to End Sequence Labeling via Bi-directional LSTM CNNs CRF

    来看看今日头条首席科学家的论文: End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF 使用LSTM方法进行序列标注,完成大规模标 ...

  4. 【sqli-labs】 less28 GET- Error based -All you Union&Select Belong to us -String -Single quote with parenthesis(GET型基于错误的去除了Union和Select的单引号带括号字符串型注入)

    这个不是基于错误的吧,看源码可以知道错误并没有输出 那就使用;%00和order by试一下 http://192.168.136.128/sqli-labs-master/Less-28/?id=1 ...

  5. hibernate 回顾

    准备jar包

  6. BZOJ 1577: [Usaco2009 Feb]庙会捷运Fair Shuttle 线段树 + 贪心

    escription 公交车一共经过N(1<=N<=20000)个站点,从站点1一直驶到站点N.K(1<=K<=50000)群奶牛希望搭乘这辆公交车.第i群牛一共有Mi(1&l ...

  7. sqlserver系统表使用

    SELECT s.table_catalog as 数据库名, o.name as 表名, c.name as 列名FROM INFORMATION_SCHEMA.TABLES s,--库 sys.o ...

  8. centos7安装mwget下载资源,提升下载速度

    1.安装mwget wget http://jaist.dl.sourceforge.net/project/kmphpfm/mwget/0.1/mwget_0.1.0.orig.tar.bz2 ta ...

  9. 企业版 Linux 附加软件包(EPEL)

    企业版 Linux 附加软件包(以下简称 EPEL)是一个由特别兴趣小组创建.维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS.Scientific Linux ...

  10. 一个asp+ACCESS省市二级联动菜单程序

    <%dim conndim connstron error resume nextconnstr="DBQ="+server.MapPath("test.mdb&q ...