vs2015编译使用GRPC

1.获取源码:位于github上html

电脑装有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 vsprojectsjava

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

3.下载gmockgit

cd grpc\third_party\protobufgithub

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

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

上述两个包下载若是没有安装git,直接去下载压缩包ide

4.下载界面版的cmakeui

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

由于后面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有几层命令空间,若是很差理解,请你们参照上面官方的示例
相关文章
相关标签/搜索