我在为GRPC服务生成客户端和服务器代码时遇到问题。我正在调整grp.io.上的说明
有一个单独的protobuf文件test_interface.proto
定义了我的服务,我尝试使用以下两个命令构建它,在与该文件相同的路径中运行:
protoc -I . --grpc_out=. --plugin=protoc-gen-grpc="C:vcpkgpackagesgrpc_x64-windowstoolsgrpcgrpc_cpp_plugin" ./test_interface.proto
protoc -I . --grpc_out=. --plugin=protoc-gen-grpc=grpc_cpp_plugin ./test_interface.proto
两者都会导致错误:
--grpc_out: protoc-gen-grpc: The system cannot find the file specified.
我在Windows 10上,使用vcpkg安装了grpc v1.33.1。这将安装开发依赖项,但不会将其二进制文件添加到系统路径中。我已经手动将protoc
和grpc_cpp_plugin
的位置添加到Path中。
我不清楚它找不到哪个文件,之前在test_interface.proto
中发现了一些语法错误,所以我知道这个文件打开得很好。我也可以从命令行运行grpc_cpp_plugin
,没有任何问题。
有人知道为什么无法构建客户端和服务器代码吗?
确保将.exe添加到插件路径中,如下所示:C:vcpkgpackagesgrpc_x64-windowstoolsgrpcgrpc_cpp_plugin.exe
在我们的文档中有一条关于这一点的注释:https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.compiler.plugin