CMake 方式編譯 gRPC

首先,下載 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 目錄下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章