搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程 📅 发布时间:2026/7/11 8:17:27 👁️ 浏览次数: 参考文章安装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_out和go-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服务接口和客户端存根clientstub的定义。 这两个插件通常一起使用以便在编译.proto文件时生成完整的Go代码包括消息类型和gRPC服务接口。② go get 和 go install 命令的使用场景当你需要获取一个包的源代码并可能需要对其进行修改时使用go get。当你需要编译并安装一个包以便使用它的可执行文件或库文件时使用go install。环境go版本go1.19注意go版本过低可能导致 go install 安装会报错下面有介绍二、安装建议虽然有三种方法github直接下载二进制使用 go install 安装手动 git clone 代码并安装但不同插件安装方法略有不同。protoc和protoc-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 --versionprotoc-gen-go 安装https://github.com/protocolbuffers/protobuf-go/tags解压后可得到对应系统的可执行文件如protoc-gen-go.exe将其放在$GOPATH/bin目录下即可。检查是否安装成功protoc-gen-go --versionprotoc-gen-go-grpc 安装比较特殊无法直接通过github下载二进制建议使用 go install 命令安装也就是方法二go install google.golang.org/grpc/cmd/protoc-gen-go-grpcv1.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博客安装 protoc根据自己电脑系统设置对应的GOOSwindowsgo env -w GOOSwindows设置完之后记得还原linuxgo env -w GOOSlinux设置完之后记得还原二进制 下载链接可能无法通过go install 安装直接去github下载二进制即可https://github.com/protocolbuffers/protobuf/tags检查是否安装成功protoc --version安装 protoc-gen-gogo install google.golang.org/protobuf/cmd/protoc-gen-gov1.31.0检查是否安装成功protoc-gen-go --version如果下载失败可以考虑开启代理go env -w GOPROXYhttps://goproxy.cn,direct如果 go install 报错如下图可能是因为你的 go 版本过低导致可以考虑升级 go 版本比如升级到 go1.19。报错package google.golang.org/protobuf/cmd/protoc-gen-gov1.31.0: can only usepathversion syntax with ‘go get’解决升级 go 版本https://golang.google.cn/dl/安装 protoc-gen-go-grpcgo install google.golang.org/grpc/cmd/protoc-gen-go-grpcv1.3.0// 检查是否安装成功protoc-gen-go-grpc --version所有插件安装完后效果如下方法三手动编译源代码不推荐较麻烦需额外下载源码 编译安装参考windows安装protoc、protoc-gen-go、protoc-gen-go-grpc-CSDN博客步骤下载项目源码git clone xxx ...进入项目并安装执行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:WorkCodeGosrc estproto protoc --go_out.–go-grpc_outpluginsgrpc:. 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, ora “M” argument on the command line.解决方法参考protoc-gen-go: unable to determine Go import path for “*.proto“问题解决-CSDN博客在你的 .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);}最终效果
基于贾子军事战略理论体系的美国 “硅谷大脑 + 战争部杀戮” 智能化战争模式深度研究 术道背离与本质异化——美国“硅谷大脑战争部杀戮”智能化战争模式的贾子理论批判 摘要:本研究以贾子军事战略理论体系为框架,深度解构美国智能化战争模式发现:其在战术执行层面高度适配贾子“庙算量化”“奇正相生”等工具策略,… 2026/7/10 11:50:47
Harmonyos应用示例40. 复习和关联:知识网络图 10. 复习和关联:知识网络图 知识点:单元整合、知识结构。 功能:点击不同节点跳转到对应练习页面,构建知识地图。 // KnowledgeMapPage.ets // KnowledgeMapPage.etsinterface KnowledgeNode {id: number;title: string; 2026/7/11 3:48:13
新版 WSL2 2.0 设置 Windows 和 WSL 镜像网络教程 WSL2 2.0.0 更新? 伴随着 Windows 11 23H2 更新,WSL2 的 2.0 更新带来了以下特性: 支持自动回收内存:WSL2 现在可以自动回收未使用的内存,提高系统性能和资源利用率;支持自动释放 WSL2 虚拟硬盘空间:WSL… 2026/7/10 7:17:38
3分钟上手:TMSpeech - 你的Windows本地实时语音转文字神器,CPU占用不到5%! 3分钟上手:TMSpeech - 你的Windows本地实时语音转文字神器,CPU占用不到5%! 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录手忙脚乱?上网课笔记跟不上老… 2026/7/11 8:15:41
光伏项目选厂指南:效率、质保、工艺,一个都不能少 如果你最近在考虑安装光伏,可能已经被各种品牌和报价看花了眼。尤其是在工业集中的惠州,光伏工厂众多,大家都说自家产品好,但到底什么才是真正值得关注的?是装得便宜?发电多?还是用得久… 2026/7/11 8:15:41
Java 8+ 排序API实战:Arrays.sort() 与 Collections.sort() 的3种自定义比较器写法 Java 8 排序API实战:Arrays.sort() 与 Collections.sort() 的3种自定义比较器写法在算法竞赛和日常开发中,排序是最基础也最频繁使用的操作之一。Java从早期版本就提供了Arrays.sort()和Collections.sort()这两个核心排序方法,但直到Java 8引… 2026/7/11 8:15:41
Linux打开xclock显示can‘t display的问题 确保DISPLAY变量正确配置。对于本地显示: export DISPLAY:0.0(针对于本地) 如果是远程访问: export DISPLAY192.168.1.2:0.0(192.168.1.2为远程访问机器的地址,如使用192.168.1.2访问192.168.1.100,是用… 2026/7/11 8:13:41
RTSP 与 RTP/RTCP 实战联调:Wireshark 抓包解析 5 个关键交互阶段 RTSP 与 RTP/RTCP 全链路抓包解析:从信令交互到媒体传输的实战指南1. 流媒体协议栈的协同架构在实时音视频系统中,RTSP、RTP、RTCP 构成了完整的传输控制体系。三者的分工如下:RTSP:作为应用层控制协议,负责媒体会话的… 2026/7/11 8:11:40
高精度ADC设计:ADS131M02与PIC18F47Q10在工业测量中的应用 1. 项目背景与核心器件选型在工业测量和电能计量领域,高精度模数转换器(ADC)的设计一直是硬件工程师面临的挑战。ADS131M02作为德州仪器(TI)推出的24位Δ-Σ ADC,以其同步采样、低功耗和优异的噪声性能成为众多设计中的首选。当与Microchip的PIC18F47Q10… 2026/7/11 8:11:40
5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符] 5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 🎬 【免费下载链接】zimuku_for_kodi Kodi 插件,用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi 还记得那个深夜吗?你刚下载… 2026/7/11 0:00:11
工业信号干扰处理与FOD4216光耦应用实战 1. 工业环境中的信号干扰挑战在工业自动化领域,信号采集的准确性直接关系到整个控制系统的可靠性。典型的工业现场充斥着各种干扰源:大功率电机启停产生的电磁干扰、变频器工作产生的高频噪声、继电器触点火花放电,以及长距离传输引入的共模干… 2026/7/11 0:00:11
OpenHarmony 完整项目工程整合规范 + 模块化分层架构(API23+ 标准企业级结构) 摘要前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理标准工程目录分层、模块化拆分、代码复用规范、全局工具统一管理、项目打包权限配置、常见工程报错统一解决方案,形成可直接用于课程设计… 2026/7/11 0:00:11
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08