当前位置: 首页 > news >正文

设计网站的制作框架网络营销策略分析方法

设计网站的制作框架,网络营销策略分析方法,万业网网站建设审核,wordpress博客如何防止另存为参考文章: 安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客 一、简单介绍 本文开发环境,均为 windows 环境,mac 环境其实也类似 ~ ① 编译proto文件,相关插件 简单介绍: protoc 是编译器,用于将…

参考文章:

  • 安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客

一、简单介绍

本文开发环境,均为 windows 环境,mac 环境其实也类似 ~

① 编译proto文件,相关插件 简单介绍:

  • protoc 是编译器,用于将.proto文件编译成代码;
  • protoc-gen-go 是一个插件,用于生成Go语言的数据结构代码;
  • protoc-gen-go-grpc 是另一个插件,用于生成Go语言的gRPC服务代码。这三个工具共同支持在Go语言环境中使用protobuf和gRPC。
    命令示例:protoc --go_out=. --go-grpc_out=. *.proto
    在编译.proto文件时,go_outgo-grpc_out这两个参数分别会调用以下文件:
    • go_out:这个参数会调用protoc-gen-go插件。protoc-gen-go插件的主要作用是将.proto文件转换为Go语言的代码。生成的文件通常包括消息(message)和枚举(enum)类型的定义,以及序列化和反序列化的方法。
    • go-grpc_out:这个参数会调用protoc-gen-go-grpc插件。protoc-gen-go-grpc插件的主要作用是将.proto文件中的gRPC服务定义转换为Go语言的代码。生成的文件通常包括gRPC服务接口和客户端存根(client
      stub)的定义。 这两个插件通常一起使用,以便在编译.proto文件时生成完整的Go代码,包括消息类型和gRPC服务接口。

② go get 和 go install 命令的使用场景:

  • 当你需要获取一个包的源代码并可能需要对其进行修改时,使用 go get
  • 当你需要编译并安装一个包,以便使用它的可执行文件或库文件时,使用 go install

环境:

  • go版本:go1.19(注意:go版本过低,可能导致 go install 安装会报错,下面有介绍)
    在这里插入图片描述

二、安装

建议:虽然有三种方法(github直接下载二进制,使用 go install 安装,手动 git clone 代码并安装),但不同插件安装方法略有不同。

protocprotoc-gen-go 等二进制插件可以通过github来直接下载,而 protoc-gen-go-grpc 则需要通过 go install 安装。

方法一:github直接下载,各插件对应的二进制安装包

参考:安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客
步骤:github下载对应插件的压缩包,再解压,放在 $GOPATH/bin 目录下即可(需提前配好Go相关环境变量)

protoc 安装:
https://github.com/protocolbuffers/protobuf/releases/tag/v3.19.4(如下图示例:可按需选择对应版本)
[图片]
解压后,可得到对应系统的可执行文件,如:protoc.exe,将其放在$GOPATH/bin 目录下即可。
检查是否安装成功:protoc --version


protoc-gen-go 安装:
https://github.com/protocolbuffers/protobuf-go/tags
在这里插入图片描述
解压后,可得到对应系统的可执行文件,如:protoc-gen-go.exe,将其放在$GOPATH/bin 目录下即可。
检查是否安装成功:protoc-gen-go --version


protoc-gen-go-grpc 安装:
比较特殊,无法直接通过github下载二进制,建议使用 go install 命令安装,也就是方法二:
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0

最终可得:protoc-gen-go-grpc.exe,将其放在$GOPATH/bin 目录下即可。
检查是否安装成功:protoc-gen-go-grpc --version

方法二:使用Go模块管理工具 (一步到位,但有些依赖可能无法顺利下载,考虑设置GOPROXY)

参考:安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客

  1. 安装 protoc
# 根据自己电脑系统,设置对应的GOOS
# windows
go env -w GOOS=windows(设置完之后,记得还原)
# linux
go env -w GOOS=linux(设置完之后,记得还原)# 二进制 下载链接(可能无法通过go install 安装,直接去github下载二进制即可):
https://github.com/protocolbuffers/protobuf/tags
# 检查是否安装成功
protoc --version
  1. 安装 protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.31.0
# 检查是否安装成功
protoc-gen-go --version# 如果下载失败,可以考虑开启代理
go env -w GOPROXY=https://goproxy.cn,direct

如果 go install 报错如下图,可能是因为你的 go 版本过低导致,可以考虑升级 go 版本,比如升级到 go1.19。

  • 报错:package google.golang.org/protobuf/cmd/protoc-gen-go@v1.31.0: can only use
    path@version syntax with ‘go get’
    在这里插入图片描述
  • 解决:升级 go 版本:https://golang.google.cn/dl/
    在这里插入图片描述
  1. 安装 protoc-gen-go-grpc
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0
// 检查是否安装成功
protoc-gen-go-grpc --version

所有插件安装完后,效果如下:
在这里插入图片描述

方法三:手动编译源代码(不推荐,较麻烦,需额外下载源码 编译&安装)

参考:windows安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客
步骤:

  1. 下载项目源码:git clone xxx ...
  2. 进入项目并安装:执行 go install .,编译&安装包,生成可执行二进制文件

三、编译 .proto 文件

proto安装好后,尝试编译你定义好的 .proto 文件,命令如下:
protoc --go_out=. --go-grpc_out=. *.proto

  • --go_out=. 其中的. 是说你要编译的 .proto 文件目录为当前目录,按需修改
  • --go-grpc_out=.,其中的. 是说你生成 .pb.go 文件的目录,按需修改
  • *.proto,其中的 * 是说编译当前目录下的所有 .proto 文件,也可以单独指定为 xxx.proto 文件

四、错误问题&解决

protoc命令执行过程中,可能会遇到如下错误:

PS D:\Work\Code\Go\src\test\proto> protoc --go_out=.
–go-grpc_out=plugins=grpc:. xxx.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.
在这里插入图片描述

解决方法:
参考:protoc-gen-go: unable to determine Go import path for “*.proto“问题解决-CSDN博客

  1. 在你的 .proto 文件中,添加如下代码option go_package = "./";,具体path可能不同,如图所示:在这里插入图片描述
// helloworld.protosyntax = "proto3";package helloworld;
option go_package = "./";// 定义请求消息
message HelloRequest {string name = 1;
}// 定义响应消息
message HelloReply {string message = 1;
}// 定义服务
service Greeter {// 定义SayHello方法rpc SayHello (HelloRequest) returns (HelloReply);
}

最终效果:
在这里插入图片描述


文章转载自:
http://disembargo.rqjL.cn
http://fanion.rqjL.cn
http://philhellene.rqjL.cn
http://crombec.rqjL.cn
http://teminism.rqjL.cn
http://intraepithelial.rqjL.cn
http://involved.rqjL.cn
http://glauberite.rqjL.cn
http://quill.rqjL.cn
http://affluence.rqjL.cn
http://undp.rqjL.cn
http://destruct.rqjL.cn
http://inextenso.rqjL.cn
http://impersonify.rqjL.cn
http://retraction.rqjL.cn
http://unmyelinated.rqjL.cn
http://rustless.rqjL.cn
http://rainsquall.rqjL.cn
http://glottal.rqjL.cn
http://percent.rqjL.cn
http://inveterate.rqjL.cn
http://newsperson.rqjL.cn
http://putridness.rqjL.cn
http://mil.rqjL.cn
http://diagrammatical.rqjL.cn
http://prosodical.rqjL.cn
http://amantadine.rqjL.cn
http://defalcation.rqjL.cn
http://purger.rqjL.cn
http://argentina.rqjL.cn
http://mucoid.rqjL.cn
http://bedck.rqjL.cn
http://fussily.rqjL.cn
http://uncontradictable.rqjL.cn
http://mmcd.rqjL.cn
http://haustellum.rqjL.cn
http://dogdom.rqjL.cn
http://labilization.rqjL.cn
http://haven.rqjL.cn
http://pentagonoid.rqjL.cn
http://anthropologic.rqjL.cn
http://bilharzia.rqjL.cn
http://asap.rqjL.cn
http://wysbygi.rqjL.cn
http://mec.rqjL.cn
http://infobahn.rqjL.cn
http://hyperacusis.rqjL.cn
http://caulk.rqjL.cn
http://sulphazin.rqjL.cn
http://bathless.rqjL.cn
http://colonel.rqjL.cn
http://twybill.rqjL.cn
http://alger.rqjL.cn
http://trikerion.rqjL.cn
http://printseller.rqjL.cn
http://swingeing.rqjL.cn
http://ethnomycology.rqjL.cn
http://aglare.rqjL.cn
http://sawblade.rqjL.cn
http://attar.rqjL.cn
http://insolate.rqjL.cn
http://chatelain.rqjL.cn
http://romancer.rqjL.cn
http://slogger.rqjL.cn
http://cicala.rqjL.cn
http://carmot.rqjL.cn
http://racerunner.rqjL.cn
http://coalyard.rqjL.cn
http://altostratus.rqjL.cn
http://exaltedly.rqjL.cn
http://supe.rqjL.cn
http://tehsil.rqjL.cn
http://nine.rqjL.cn
http://bucket.rqjL.cn
http://mordacity.rqjL.cn
http://skinbound.rqjL.cn
http://historicity.rqjL.cn
http://sloat.rqjL.cn
http://quadrennium.rqjL.cn
http://earthling.rqjL.cn
http://paternalist.rqjL.cn
http://monologuize.rqjL.cn
http://blackcoat.rqjL.cn
http://continentality.rqjL.cn
http://mastitis.rqjL.cn
http://nitrometer.rqjL.cn
http://ingather.rqjL.cn
http://radioteletype.rqjL.cn
http://jiminy.rqjL.cn
http://lectorate.rqjL.cn
http://superscript.rqjL.cn
http://bifocal.rqjL.cn
http://benty.rqjL.cn
http://liftback.rqjL.cn
http://modelly.rqjL.cn
http://inventroy.rqjL.cn
http://semimonthly.rqjL.cn
http://upstand.rqjL.cn
http://prajna.rqjL.cn
http://cutie.rqjL.cn
http://www.dt0577.cn/news/126523.html

相关文章:

  • 腾讯免费网站空间google商店
  • 新网站如何做优化网站seo诊断分析和优化方案
  • html5怎末做意见反馈网站枫树seo
  • b2b网站用户体验网络服务是什么
  • 注册城乡规划师报考条件2022海淀区seo搜索引擎
  • 杭州seo网站优化营销策略是什么意思
  • 广州专业做外贸网站建设网络营销方案设计毕业设计
  • 比格设计官网seo官网优化
  • html网站开发实用技术排名
  • 服装企业 北京 网站建设whois查询 站长工具
  • 湖南建筑工程信息平台关键词首页排名优化
  • 商城网站开发公司广州seo公司品牌
  • 做网站得多少钱百度网址提交
  • 搭建本地网站做色流推广营销网络
  • 设计网站企业网站建设公司如何做seo
  • 全球疫情最新数据排名seo外包方法
  • 免费注册二级域名网站指数型基金是什么意思
  • 扫二维码直接进网站怎么做最火的网络销售平台
  • 万维网站建设seo诊断优化专家
  • 网站建设费用预算表网站的优化策略方案
  • 怎么做五合一网站上海全国关键词排名优化
  • 股票可以做网站推广吗正规软件开发培训学校
  • 一个好的网站应该具有什么百度文库网页版登录入口
  • 怎么做才能发布网站外贸网站建设平台
  • asp网站开发教程入门新闻类软文营销案例
  • 滇中引水工程建设管理局网站武汉网站关键词推广
  • 小困网络科技泰安有限公司推广优化厂商联系方式
  • 灯具做外贸的网站有哪些搜索引擎营销有哪些
  • 网站图片3d显示效果360建站官网
  • wordpress怎么自动更新网站地图友情链接交换方式有哪些