Golang ProtoBuf 初学者完整教程:安装

一、Protobuf 特点

更高效:使用二进制编码,相比XML/JSON更加高效

跨语言支持:Protobuf 在 .proto 定义需要处理的结构化数据,可以通过 protoc 工具,将 .proto 文件转换为 C、C++、Golang、Java、Python 等多种语言的代码

体积更小:Protobuf 编码是通过成员的唯一编号来绑定对应的数据,因此 Protobuf 编码后数据的体积会比较小

二、安装 protobuf

下面以windows为例

1、安装protoc:https://github.com/protocolbuffers/protobuf/releases

将bin目录加入环境变量,然后就可以检查一下 protoc 是否安装成功

bash 复制代码
protoc --version

2、安装protoc-gen-go

bash 复制代码
go get -u google.golang.org/protobuf/

如果在执行protoc命令出现如下错误:

bash 复制代码
'protoc-gen-go' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
--go_out: protoc-gen-go: Plugin failed with status code 1.

解决办法:

需要安装protoc-gen-go.exe可执行文件,当protoc命令执行时,当编译器调用时传递了 --go_out命令行标志时, protoc就会使用它。

下载protobuf-go源码然后编译安装就可以自动在 gopath 目录下生成 protoc-gen-go.exe

bash 复制代码
git clone https://github.com/protocolbuffers/protobuf-go

cd ./protobuf-go/cmd/protoc-gen-go/
go install .
相关推荐
野犬寒鸦9 分钟前
深入解析HashMap核心机制(底层数据结构及扩容机制详解剖析)
java·服务器·开发语言·数据库·后端·面试
##学无止境##1 小时前
从0到1吃透Java负载均衡:原理与算法大揭秘
java·开发语言·负载均衡
Desirediscipline2 小时前
#define _CRT_SECURE_NO_WARNINGS 1
开发语言·数据结构·c++·算法·c#·github·visual studio
知识即是力量ol2 小时前
多线程并发篇(八股)
java·开发语言·八股·多线程并发
尘缘浮梦2 小时前
协程asyncio入门案例 1
开发语言·python
没有bug.的程序员2 小时前
Lombok 深度进阶:编译期增强内核、@Data 与 @Builder 逻辑博弈及工业级避坑实战指南
java·开发语言·python·builder·lombok·data·编译器增强
guygg882 小时前
基于人工神经网络的彩色图像恢复 MATLAB实现
开发语言·计算机视觉·matlab
m0_531237173 小时前
C语言-分支与循环语句练习2
c语言·开发语言·算法
懒惰成性的3 小时前
Java方法的使用
java·开发语言
蚊子码农3 小时前
算法题解记录-2452距离字典两次编辑以内的单词
开发语言·算法·c#