CMake 方式编译 gRPC

本文详细介绍了如何从源代码编译gRPC,包括下载指定版本源代码、使用gitsubmodule更新第三方依赖,以及确保CMake版本符合要求。同时,提供了编译生成C++和Go代码的示例。

首先,下载 gRPC 源代码到本地:

  • git clone https://github.com/grpc/grpc.git

如果只想下载指定版本的,如以版本“1.27.3”为例,可改成如下语句:

  • git clone -b v1.27.3 https://github.com/grpc/grpc.git

上列操作成功完成后,gRPC 源码的第三方依赖目录 third_party 实际是空的,需通过下列步骤拉取依赖的第三方。切换到 grpc 目录,下载 grpc 第三方依赖到本地:

  • git submodule update --init

grpc依赖的第三方库有点多,如果不借助”git submodule“,手工一个个下载不太容易。

注意,gRPC 要求 CMake 3.5.1 或以上版本的CMake,否则会报错”CMake 3.5.1 or higher is required“。

如果遇到下列问题,则表示第三方库没有准备好:

CMake Warning at cmake/abseil-cpp.cmake:30 (message):

gRPC_ABSL_PROVIDER is “module” but ABSL_ROOT_DIR is wrong:

/data/grpc/grpc-1.27.3/third_party/abseil-cpp

Call Stack (most recent call first):

CMakeLists.txt:188 (include)


  • gRPC 编译生成 c++ 代码示例(依赖插件 grpc_cpp_plugin):

protoc --proto_path=. --grpc_out=. --plugin=protoc-gen-grpc=which grpc_cpp_plugin service.proto

  • gRPC 编译生成 go 代码示例(依赖插件 protoc-gen-go):

protoc --proto_path=. --go_out=plugins=grpc,paths=source_relative:. service.proto

一般,建议将 grpc_cpp_plugin 和 protoc-gen-go 放在 /usr/local/bin 目录下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值