gRPC protobuf for C++ 基本使用
要在Linux上编译.proto文件并生成gRPC代码,您需要遵循以下步骤:
-
确保已在系统上安装了Protocol Buffers(简称为protobuf)。可以从protobuf官方网站(https://developers.google.com/protocol-buffers)下载和安装protobuf编译器。
-
确保已安装gRPC的依赖库,包括gRPC和gRPC的protobuf插件。可以使用以下命令安装:
$ sudo apt install -y build-essential autoconf libtool pkg-config $ sudo apt install -y libgflags-dev libgtest-dev $ sudo apt install -y clang libc++-dev $ git clone -b $(curl -L https://grpc.io/release) https://github.com/grpc/grpc $ cd grpc $ git submodule update --init $ make $ sudo make install $ cd third_party/protobuf $ sudo make install
上述命令将从gRPC的GitHub存储库中克隆源代码,并安装所需的依赖项。
-
编写您的.proto文件,并确保在文件中定义了所需的gRPC服务和消息。
-
使用protobuf编译器生成对应的代码。可以使用以下命令:
将生成的 grpc_cpp_plu gin.exe 复制放到 protobuf 文件夹下,与protoc.exe在一起
windows 下可以使用shell命令 创建一个 .bat 的文件,linux 下可以创建一个 .sh文件
protoc.exe -I=. --grpc_out=. --plugin=protoc-gen-grpc=./grpc_cpp_plugin.exe grpcHandle.proto
protoc.exe -I=. --cpp_out=. grpcHandle.proto
PAUSE
就会在当前目录下生成 grpcHandle.grpc.pb.cc grpcHandle.grpc.pb.h grpcHandle.pb.cc grpcHandle.pb.h 四个文件
-
编译生成的代码。您需要将生成的代码与gRPC库链接在一起,以构建您的应用程序。可以使用适当的编译器命令,例如
g++
:$ g++ -std=c++11 -I<path_to_grpc_headers> -I<path_to_protobuf_headers> \ -L<path_to_grpc_libraries> -L<path_to_protobuf_libraries> \ -o <output_executable> <your_code.cpp> -lgrpc++ -lgrpc -lprotobuf
替换
<path_to_grpc_headers>
和<path_to_grpc_libraries>
为gRPC头文件和库文件的路径,替换<path_to_protobuf_headers>
和
<path_to_protobuf_libraries>
为protobuf头文件和库文件的路径,<output_executable>
为输出可执行文件的路径和名称,<your_code.cpp>
为您的应用程序代码文件。编译命令会将您的应用程序与gRPC和protobuf库链接在一起,并生成可执行文件。
完成上述步骤后,您应该能够成功在Linux上编译.proto文件并生成gRPC代码。请根据您的项目结构和配置进行必要的调整。
参考网址:
https://blog.csdn.net/Coxhuang/article/details/110421900?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169289315616800182735942%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=169289315616800182735942&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-25-110421900-null-null.142v93chatsearchT3_1&utm_term=protobuf%E7%94%9F%E6%88%90c%2B%2B&spm=1018.2226.3001.4187