• Protobuf生成文件报错


    Mac下protobuf生成文件报错问题解决办法,windows下就不会这么麻烦了,如果linux下出现类似报错信息按照下面的解决逻辑依然适用。

    1、由–go_out引发的报错

    1.报错信息:

    user@C02FP58GML7H pbfile % protoc --go_out=./ ./user.proto
    protoc-gen-go: program not found or is not executable
    Please specify a program using absolute path or make sure the program is available in your PATH system variable
    --go_out: protoc-gen-go: Plugin failed with status code 1.
    

    2.解决办法:

    1. 找到protoc-gen-go 文件,复制文件到/usr/local/bin/目录下,该文件通过go get安装时会默认安装在$GOPATH/go/bin目录下,博主本人的安装路径/Users/user/go/bin
      执行复制命令:cp protoc-gen-go /usr/local/bin/
    2. 修改环境变量配置:vim ~/.bash_profile
      添加:export GOPATH=$HOME/go PATH=$PATH:$GOPATH/bin
      刷新环境变量:source ~/.bash_profile

    3.结果示例:

    user@C02FP58GML7H bin % vim ~/.bash_profile
    user@C02FP58GML7H bin % source ~/.bash_profile
    

    2、由–go-grpc_out和protoc-gen-go-grpc引发的报错

    1.按照官方命令生成文件:

    # product.proto是博主本人的文件,执行的时候需要修
    protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative product.proto
    

    2.报错信息如下:

    user@C02FP58GML7H pbfile % protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative product.proto 
    protoc-gen-go-grpc: program not found or is not executable
    Please specify a program using absolute path or make sure the program is available in your PATH system variable
    --go-grpc_out: protoc-gen-go-grpc: Plugin failed with status code 1.
    

    3.重新安装一下:

    # 旧版本下载方式(此示例是根据旧版本下载来解决得,如果操作之后依然报错就直接使用新版本下载方式)
    sudo go get -u google.golang.org/protobuf/cmd/protoc-gen-go
    sudo go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc
    # 新版本下载方式
    go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28
    go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2
    

    4.将protoc-gen-go和protoc-gen-go-grpc复制到/usr/local/bin/目录下

    使用go env查看GOPATH的路径,默认安装在这个文件夹下的bin文件夹中

    • 切换目录:cd /Users/user/go/bin(博主的所在位置)
    • 复制:cp protoc-gen-go /usr/local/bin/
    • 复制:cp protoc-gen-go-grpc /usr/local/bin/

    5.检查/添加环境变量

    使用命令cat ~/.bash_profile查看环境变量中是否存在:export PATH=/usr/local/go/bin

    存在 刷新一下环境变量配置:source ~/.bash_profile

    不存在 使用vim添加:export PATH=/usr/local/go/bin
    刷新一下环境变量配置:source ~/.bash_profile

    6.执行protoc命令生成文件即可

    product.proto是声明文件

    生成文件命令:protoc --go_out=./ ./product.proto

    生成rpc文件命令:protoc --go_out=./ --go-grpc_out=./ product.proto

  • 相关阅读:
    k8s 使用HPA 进行弹性扩容pod节点,
    Java流式编程Stream
    WebGL笔记:矩阵的变换之平移的实现
    IDEA 启动 java web 老项目
    NC191 二叉搜索树的最近公共祖先
    【python零基础入门学习】python进阶篇之时间表示方法和异常处理以及linux系统的os模块执行shell命令以及记账程序编写教学(一)
    计算机毕业设计Java大众采编本微资讯发布平台(源码+系统+mysql数据库+lw文档)
    RHCSA 重定向、vim练习题
    【Java】PAT(Basic Level) Practice(中文) 1015德才论
    全新整合热搜榜单热门榜单内容系统聚合源码/带教程安装
  • 原文地址:https://blog.csdn.net/sinat_41672927/article/details/127092742