重新生成 gRPC 代码时出现未知标志:--go_opt

问题描述 投票:0回答:4

我按照此链接中的 gRPC 快速入门文档https://grpc.io/docs/languages/go/quickstart/ 重新生成 gRPC 代码时出现错误(未知标志:--go_opt),如下所示。尝试了所有选项但不起作用。它还给出(未知标志:--go-grpc_opt)错误。

命令-

$ protoc \
  --go_out=Mgrpc/service_config/service_config.proto=/internal/proto/grpc_service_config:. \
  --go-grpc_out=Mgrpc/service_config/service_config.proto=/internal/proto/grpc_service_config:. \
  --go-grpc_opt=paths=source_relative \
  helloworld/helloworld.proto

Error - Unknown flag: --go_opt
go grpc
4个回答
9
投票

我也有同样的问题。我删除了已安装的 protobuf 编译器,并使用“安装预编译的二进制文件”选项重新安装了 protobuf 编译器 https://grpc.io/docs/protoc-installation/

sudo apt-get remove protobuf-compiler
$PB_REL="https://github.com/protocolbuffers/protobuf/releases"
$ curl -LO $PB_REL/download/v3.12.1/protoc-3.12.1-linux-x86_64.zip

$sudo apt install unzip
$unzip protoc-3.12.1-linux-x86_64.zip -d HOME/.local

$export PATH="$PATH:$HOME/.local/bin"

3
投票

这个问题似乎很常见,有几个不同的痛点,所以我将添加一个可能有助于突出显示一堆问题的答案:

  1. 旧版本的编译器没有
    _opt
    标志
  2. protoc
    有一个
    --foo_opt
    标志 only 如果您还指定了
    --foo_out
    标志
  3. 一些教程可能使用了不正确的
    export
    命令,因此请验证
    protoc
    和其他二进制文件(例如
    protoc-gen-go-grpc
    )实际上已添加到路径中(有很多方法可以检查/修改
    PATH
    变量,具体取决于在系统上,添加基本资源以在 WindowsUnix)
  4. 上开始使用

0
投票

我遇到了同样的错误,然后我尝试了这样的方法:

protoc --proto_path=helloworld --go_out=paths=source_relative:. -I. helloworld/*.proto

-4
投票

您缺少第四行:

--go_opt=paths=source_relative \

© www.soinside.com 2019 - 2024. All rights reserved.