# grpc-demo **Repository Path**: yangzi2000/grpc-demo ## Basic Information - **Project Name**: grpc-demo - **Description**: grpc实现c++异步非阻塞stream的demo - **Primary Language**: C++ - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 7 - **Created**: 2024-10-15 - **Last Updated**: 2024-10-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 这是一个grpc 异步非阻塞 stream server的demo项目 一、 编译安装protobuf和grpc库 1. 首先需要安装protobuf # windows上安装protobuf vcpkg.exe install protobuf:x64-windows # linux上安装protobuf sudo apt install libprotobuf-dev protobuf-compiler 2. 使用包/库管理器安装 # Windows vcpkg.exe install pkgconf:x64-windows vcpkg install grpc:x64-windows # Linux sudo apt -y install protobuf-compiler-grpc sudo apt install libgrpc++-dev 二、生成protobuf和grpc依赖文件 1. Linux 下生成依赖文件 protoc --proto_path=. --cpp_out=proto/linux/. hello.proto protoc -I . --grpc_out=proto/linux/. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` hello.proto 或者: protoc -I . --grpc_out=proto/linux/. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` --cpp_out=proto/linux/. hello.proto 2. Windows 下生成依赖文件 可以先把 【vcpkg】\packages\protobuf_x64-windows\tools\protobuf\protoc.exe 所在路径加入到环境变量PATH中。 cd 【.proto 所在文件】 protoc --proto_path=. --cpp_out=proto/win/. hello.proto protoc --proto_path=. --grpc_out=proto/win/. --plugin=protoc-gen-grpc="【vcpkg】\packages\grpc_x64-windows\tools\grpc\grpc_cpp_plugin.exe" hello.proto protoc --proto_path=. --grpc_out=proto/win/. --plugin=protoc-gen-grpc="E:\vcpkg\vcpkg\packages\grpc_x64-windows\tools\grpc\grpc_cpp_plugin.exe" hello.proto protoc --proto_path=. --cpp_out=proto/win/. --grpc_out=proto/win/. --plugin=protoc-gen-grpc="E:\vcpkg\vcpkg\packages\grpc_x64-windows\tools\grpc\grpc_cpp_plugin.exe" hello.proto 三、编译 1. Linux 下编译 mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Debug .. make 2. Windows 下编译 mkdir build cd build 运行 vcpkg integrate install, 从输出中拷贝出执行 cmake 需要的参数, 其输出可能 Applied user-wide integration for this vcpkg root. CMake projects should use: "-DCMAKE_TOOLCHAIN_FILE=E:/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake" 则 cmake 命令如: cmake -DCMAKE_TOOLCHAIN_FILE=E:/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Debug .. 四、测试 先启动 grpcServer, 再启动一个或多个 grpcClient 进行测试。 本人使用的环境 系统: Ubuntu 22.04 架构: x86_64 g++版本: 11.2.0 cmake版本: 3.24.0-rc5 grpc版本: v1.45.2 Protobuf版本: v3.19.4