一、空模板创建项目 创建一个C++
空项目GrpcLearn
,本例中使用debug
模式编译,
文章图片
二、拷贝项目文件 拷贝文件到GrpcLearn
项目所在目录中
\grpc\examples\protos
中helloworld.proto
grpc\examples\cpp\helloworld
中greeter_client.cc
和greeter_server.cc
C:\Program Files (x86)\grpc\bin
中protoc.exe
和zlibd.dll
grpc\build_VS2019_x32\Debug
中grpc_cpp_plugin.exe
文章图片
cmd
中输入命令,生成4个pb文件protoc.exe--grpc_out=. --plugin=protoc-gen-grpc=grpc_cpp_plugin.exe helloworld.proto
protoc.exe --cpp_out=. helloworld.proto
文章图片
四、设置项目属性 把文件关联到项目中
文章图片
1. 【C/C++】-【常规】-【附加包含目录】
C:\workspaces\grpc2\grpc\third_party\protobuf\src
C:\workspaces\grpc2\grpc\include
文章图片
2. 【C/C++】-【预处理器】-【预处理器定义】
添加
_WIN32_WINNT=0x0A00
文章图片
3. 【链接器】-【常规】-【附加库目录】
C:\workspaces\grpc2\grpc\build_VS2019\third_party\cares\cares\lib\Debug
C:\workspaces\grpc2\grpc\build_VS2019\third_party\zlib\Debug
C:\workspaces\grpc2\grpc\build_VS2019\third_party\protobuf\Debug
C:\workspaces\grpc2\grpc\build_VS2019\Debug
文章图片
4. 【链接器】-【输入】-【附加依赖项】
libprotobufd.lib
grpc.lib
grpc++.lib
gpr.lib
Ws2_32.lib
zlibd.lib
cares.lib
address_sorting.lib
文章图片
五、编译项目
greeter_client.cc
文件中增加代码std::cin.get();
,让exe窗口停下来文章图片
- 注释掉客户端的main函数,编译服务端,生成的
exe
文件改名server.exe
, - 注释服务端的main函数,编译客户端,生成的
exe
文件改名client.exe
。 - 把zlibd.dll包拷贝到
exe
文件所在的目录中。
- 创建文件夹
depends
,子文件grpc
和third_party
。
- 将
grpc\include
和grpc\third_party\protobuf\src
拷贝到grpc
文件夹中
- 将下面文件夹中文件拷贝到
third_party
目录中:
grpc\build_VS2019_x32\Debug
grpc\build_VS2019_x32\third_party\cares\cares\lib\Debug
grpc\build_VS2019_x32\third_party\zlib\Debug
grpc\build_VS2019_x32\third_party\protobuf\Debug
七、参考资料
- grpc1.18.0 c++ windows visual studio 2017(vs2017)版本Helloworld示例与解析:
https://blog.csdn.net/shan165310175/article/details/86619128
- Windows+VS2017使用gRPC:
https://www.cnblogs.com/MakeView660/p/11511136.html
推荐阅读
- grpc- python调用c++的rpc服务
- cmake|cmake - 如何生成grpc的*.pb.cc和*.pb.h文件
- GRPC 负载均衡实现
- AspNetCore|gRPC-Web 踩坑记
- #|gRPC 在 Java 中的入门实例
- grpc练习
- gRPC Java Quickstart
- GRPC 初体验
- grpc|在python中使用grpc和protobuf
- 微服务|GO-Grpc微服务开发六 网关和http调用