• 运行proto文件踩坑历程


    一.安装protobuf
    https://github.com/protocolbuffers/protobuf/releases
    在这里插入图片描述
    在这里一定要确保你的protoc.exe是在你的gopath目录下,否则会报错protoc不是内部或外部命令!后续的protoc-gen-go.exe和protoc-gen-go-grpc.exe都要保证在这个目录中
    解决措施:go env查看下GOPATH,将下载好的protoc.exe粘贴到该path的bin目录下
    二.安装protoc plugin插件
    正确做法:
    go get -u github.com/golang/protobuf/protoc-gen-go
    我自己安装过程中出现的报错和一些解决措施:

    安装protobuf之后,创建proto文件失败
    解决措施:

    go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
    go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
    
    • 1
    • 2

    protoc-gen-go不是内部或外部命令,也不是可运行的程序
    解决措施:go get -u github.com/golang/protobuf/protoc-gen-go

    $ protoc --go_out=. *.proto
    protoc-gen-go: unable to determine Go import path for "xxx.proto"
    
    Please specify either:
            • a "go_package" option in the .proto source file, or
            • a "M" argument on the command line.
    
    See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information.
    
    --go_out: protoc-gen-go: Plugin failed with status code 1.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    解决措施:

    提示以上错误可以通过将​​protoc-gen-go​​版本降至v1.3.2及以下解决:
    go get -u github.com/golang/protobuf/protoc-gen-go@v1.3.2
    
    • 1
    • 2

    三.运行指令
    正确做法:

    protoc --go_out=../service .\search.proto
    
    • 1

    go_out是指你的文件输出目录
    在这里插入图片描述
    我自己安装过程中出现的报错:
    使用的命令是 protoc --go_out=plugins=grpc:. *.proto

    protoc-gen-go: unable to determine Go import path for "search.proto"
    
    Please specify either:
            • a "go_package" option in the .proto source file, or
            • a "M" argument on the command line.
    
    See https://developers.google.com/protocol-buffers/docs/reference/go-
    generated#package for more information.
    
    --go_out: protoc-gen-go: Plugin failed with status code 1.
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    如果解决不了,还可以在search.proto中加入:

    option go_package=“…/service”;
    在这里插入图片描述
    中间出现了很多的问题,有些问题可能大家遇不到,以上是个人安装过程中的报错及解决方案仅供参考

    在这里插入图片描述

  • 相关阅读:
    SpringBoot依赖和代码分开打包
    vscode开发高频、通用插件集合(精选15个)
    数据结构——排序の选择题整理
    RabbitMQ学习笔记
    Java阻塞队列中的异类,SynchronousQueue底层实现原理剖析
    uboot源码——根目录下的mkconfig文件分析
    Kafka:分布式流处理平台的深度解析
    python输出HelloWorld
    论文翻译:2022_Time-Frequency Attention for Monaural Speech Enhancement
    【好用的个人工具】搭建一款实用的个人IT工具箱——it-tools
  • 原文地址:https://blog.csdn.net/m0_49049914/article/details/126618461