• 运行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”;
    在这里插入图片描述
    中间出现了很多的问题,有些问题可能大家遇不到,以上是个人安装过程中的报错及解决方案仅供参考

    在这里插入图片描述

  • 相关阅读:
    WebRTC系列补充--native重采样
    Metersphere 源码启动并做性能测试
    Python函数和模块
    深度剖析Istio共享代理新模式Ambient Mesh
    TensorFlow自定义训练函数
    Heptabase 究竟好在哪儿?
    西门子S7-1200F或1500F系列安全PLC的组态步骤和基础编程(二)
    Spring Boot 2.x系列【14】功能篇之@Conditional注解
    【TensorFlow1.X】系列学习笔记【基础一】
    程序员敲诈老板,或面临37年监禁
  • 原文地址:https://blog.csdn.net/m0_49049914/article/details/126618461