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

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 是否安装成功 

protoc --version

2、安装protoc-gen-go

go get -u google.golang.org/protobuf/

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

'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

git clone https://github.com/protocolbuffers/protobuf-gocd ./protobuf-go/cmd/protoc-gen-go/
go install .

相关文章:

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

一、Protobuf 特点 更高效:使用二进制编码,相比XML/JSON更加高效 跨语言支持:Protobuf 在 .proto 定义需要处理的结构化数据,可以通过 protoc 工具,将 .proto 文件转换为 C、C、Golang、Java、Python 等多种语言的代…...

Isolation Forest 简介

1. 简介 孤立森林 iForest(Isolation Forest)是一种无监督学习算法,用于识别异常值。其基本原理是:异常数据由于数量较少且与正常数据差异较大,因此在被隔离时需要较少的步骤。 两个假设: 1. 异常的值是非常少的(如果异常值很多&…...

Java爬虫携带sign签名

站点&#xff1a;https://www.mytokencap.com/ 代码分析先不写了&#xff0c;大家自行解决&#xff0c;贴代码 1、业务请求设计 public static void md5Pro() {String url "https://api.mytokenapi.com/ticker/currencylistforall";Map<String, String> he…...

设计者模式之中介者模式(下)

3&#xff09;中介者与同事类的扩展 1.结构图 新增了具体同事类Label和具体中介者类SubConcreteMediator。 2.代码实现 //文本标签类&#xff1a;具体同事类 public class Label extends Component {public void update() {System.out.println("文本标签内容改变&#…...

SAP SD学习笔记04 - 出荷Plant(交货工厂),出荷Point(装运点),输送计划,品目的可用性检查,一括纳入/分割纳入,仓库管理

上一章讲了SD的主数据。 SAP SD学习笔记03 - SD模块中的主数据-CSDN博客 本章讲出荷Plant&#xff08;交货工厂&#xff09;&#xff0c;出荷Point&#xff08;装运点&#xff09;和出和路线。 还是偏理论多一些&#xff0c;后面的文章尽量多加些练习巩固一下。 1&#xff0…...

bind包装器——C++新特性(三)

文章目录 bindbind函数模板的原型bind 包装器的用途其他使用示例 &#x1f396; 博主的CSDN主页&#xff1a;Ryan.Alaskan Malamute &#x1f4dc; 博主的代码仓库主页 [ Gitee ]&#xff1a;ryanala [GitHub]&#xff1a; Ryan-Ala bind bind也是一种函数包装器&#xf…...

MXNet的下载安装及问题处理

1、MXNet介绍&#xff1a; MXNet是一个开源的深度学习框架&#xff0c;以其灵活性和效率著称&#xff0c;支持多种编程接口&#xff0c;包括Python、C、R、Julia、Scala等。MXNet支持大规模分布式训练&#xff0c;同时兼顾CPU和GPU的计算资源&#xff0c;尤其擅长于模型并行和数…...

Python 中的列表排序和排序规则

Python 中的列表排序和排序规则 在 Python 中&#xff0c;列表的排序是一个常见的操作&#xff0c;可以使用内置函数 sorted() 或列表对象的 sort() 方法来完成。下面将介绍这两种方法以及排序规则的使用方式。 1. 使用 sorted() 函数排序列表&#xff08;临时性排序&#xf…...

面经整理1

感觉好几个都是backtracking Letter Combinations of a Phone Number - LeetCode 典型的backtracking&#xff0c;注意String的处理 class Solution {String[] keyboard new String[]{"", "", "abc","def","ghi","…...

ChatGPT个人专用版 SSRF漏洞复现(CVE-2024-27564)

0x01 产品简介 ChatGPT个人专用版是一种基于 OpenAI 的 GPT-3.5 、GPT-4.0语言模型的产品。它是设计用于 Web 环境中的聊天机器人,旨在为用户提供自然语言交互和智能对话的能力。PHP版调用OpenAI接口进行问答和画图,采用Stream流模式通信,一边生成一边输出。前端采用EventS…...

Python中的可哈希与不可哈希对象详解

文章目录 1. 前置知识&#xff1a;哈希是什么2. 可哈希和不可哈希对象的定义2.1可哈希2.2 不可哈希 3. 对象的哈希方法3.1 自定义对象的哈希方法3.2 可哈希性与等价性3.3 哈希值的用途 推荐 在复习可变对象和不可变对象时&#xff0c;学到了这个内容 1. 前置知识&#xff1a;哈…...

【嵌入式DIY实例】-DIY速度计

DIY速度计 文章目录 DIY速度计1、硬件准备1.1 NEO-6M GPS模块介绍1.2 硬件接线原理图2、代码实现本文将介绍如何使用模拟仪表和 GPS 模块制作 DIY Arduino 速度计。 仪表用于显示当前速度,而GPS模块用于实时跟踪速度。 该项目将 Arduino 板与 GPS 模块相结合,在经典模拟仪表上…...

1.0 Hadoop 教程

1.0 Hadoop 教程 分类 Hadoop 教程 Hadoop 是一个开源的分布式计算和存储框架&#xff0c;由 Apache 基金会开发和维护。 Hadoop 为庞大的计算机集群提供可靠的、可伸缩的应用层计算和存储支持&#xff0c;它允许使用简单的编程模型跨计算机群集分布式处理大型数据集&#xf…...

【无人机/平衡车/机器人】详解STM32+MPU6050姿态解算—卡尔曼滤波+四元数法+互补滤波(文末附3个算法源码)

效果: MPU6050姿态解算-卡尔曼滤波+四元数+互补滤波 目录 基础知识详解 欧拉角...

智能水务系统:构建高效节水的城市水网

随着城市化进程的加速和人民生活水平的提高&#xff0c;对水务管理的需求也越来越高。传统的水务管理方式已经无法满足现代社会的需求&#xff0c;而智能水务系统的出现为水务管理带来了新的变革。本文将从项目背景、需求分析、建设目标、建设内容、技术方案、安全设计等方面&a…...

【JavaEE初阶系列】——网络编程 UDP客户端/服务器 程序实现

目录 &#x1f6a9;UDP和TCP之间的区别 &#x1f388;TCP是有连接的 UDP是无连接的 &#x1f388;TCP是可靠传输 UDP是不可靠传输 &#x1f388;TCP是面向字节流 UDP是面向数据报 &#x1f388;TCP和UDP是全双工 &#x1f469;&#x1f3fb;‍&#x1f4bb;UDP的socket ap…...

数据结构复习指导之绪论(算法的概念以及效率的度量)

文章目录 绪论&#xff1a; 2.算法和算法评价 知识总览 2.1算法的基本概念 知识点回顾与重要考点 2.2算法效率的度量 知识总览 1.时间复杂度 2.空间复杂度 知识点回顾与重要考点 归纳总结 绪论&#xff1a; 2.算法和算法评价 知识总览 2.1算法的基本概念 算法( Al…...

C语言经典例题(23)

1.求n的阶乘。(不考虑溢出) #include <stdio.h>int fac(int n);int main() {int n 0;scanf("%d", &n);int sum fac(n);printf("%d", sum);return 0; }int fac(int n) {if (n > 1){return n * fac(n - 1);}elsereturn 1; }2.求第n个斐波那契…...

Gitea的简单介绍

Gitea 是一个自由、开源、轻量级的 Git 服务程序。它是为了建立一个易于使用的、类似 GitHub 的 Git 服务而创建的。Gitea 采用 Go 语言编写,具有简单、快速、易于安装和配置的特点。 Gitea 提供了一个基本的 Web 界面,可以方便地进行代码托管、问题跟踪、协作等操作。用户可…...

Qt信号与槽

我们在使用Qt的时候&#xff0c;不使用Qt Designer 的方式进行开发&#xff0c;使用ui文件&#xff0c;信号与槽的连接方式是生成代码之后才能在setupUi函数里才能看到&#xff0c;或者需要进入Ui设计器里的信号槽模式里才能看到信号槽的连接。所以我们最好使用代码绘制界面。 …...

为OpenClaw智能体工作流配置持久化的大模型服务支持

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为OpenClaw智能体工作流配置持久化的大模型服务支持 在构建基于OpenClaw的智能体工作流时&#xff0c;一个稳定、可靠的后端大模型…...

【独家首发】Sora 2正式版未公开能力清单:原生支持3D空间锚点+时间轴语义编辑+版权水印嵌入(附OpenAI内部文档节选)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Sora 2正式版核心能力全景概览 多模态时序理解与生成一体化 Sora 2正式版突破性地将文本、图像、音频及物理运动参数统一编码至共享时空潜空间&#xff0c;支持长达120秒、1080p分辨率的连贯视频生成。…...

3步实现电脑风扇智能控制:FanControl.HWInfo插件终极指南

3步实现电脑风扇智能控制&#xff1a;FanControl.HWInfo插件终极指南 【免费下载链接】FanControl.HWInfo FanControl plugin to import HWInfo sensors. 项目地址: https://gitcode.com/gh_mirrors/fa/FanControl.HWInfo 还在为电脑风扇的噪音烦恼吗&#xff1f;或者担…...

Claude AI代码扩展工具:在IDE中无缝集成智能编程助手

1. 项目概述&#xff1a;一个为Claude AI设计的代码扩展工具最近在折腾AI编程助手的时候&#xff0c;发现了一个挺有意思的项目——dliedke/ClaudeCodeExtension。这玩意儿说白了&#xff0c;就是一个专门为Claude&#xff08;就是Anthropic家那个AI&#xff09;设计的代码扩展…...

Taotoken如何助力AIGC内容创作团队平衡效果与成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken如何助力AIGC内容创作团队平衡效果与成本 对于专注于短视频脚本、营销文案等AIGC内容生产的团队而言&#xff0c;频繁调用…...

2026年项目管理工具测评:10款主流软件对比与企业选型建议

本文测评 ONES、Tower、Jira、Asana、monday、ClickUp、Notion、Trello、Microsoft Project、Smartsheet 十款项目管理工具&#xff0c;帮助选型人员从组织规模、项目复杂度、协作方式与治理需求出发&#xff0c;判断哪类项目管理工具更适合自身团队。一、10款项目管理工具速览…...

深耕区域数字生态,智森传媒赋能本地中小企业破局增长

在本地生活流量红利消退、行业内卷加剧的当下&#xff0c;中小企业数字化转型已不是选择题&#xff0c;而是生存题。十堰智森网络传媒立足本土市场&#xff0c;以技术研发为根基&#xff0c;以区域获客为核心&#xff0c;以数字人直播为抓手&#xff0c;为中小企业搭建全链路数…...

Selenium自动化ChatGPT:绕过API限制,实现Web端高效批量交互

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“Michelangelo27/chatgpt_selenium_automation”。光看名字&#xff0c;你大概能猜到它想做什么&#xff1a;用Selenium自动化操作ChatGPT。这听起来是不是有点“用大炮打蚊子”的感觉&#xff1f;毕…...

视频对象移除与背景修复:时空联合建模实战指南

1. 项目概述&#xff1a;让AI“脑补”被遮挡的画面&#xff0c;不是魔法&#xff0c;是空间-时间联合建模的落地“This AI takes a video and fills the missing pixels behind an object!”——这句话乍看像科幻预告片里的旁白&#xff0c;但其实它精准指向一个正在快速成熟的…...

如何在Windows任务栏实时监控股票行情:TrafficMonitor股票插件终极指南

如何在Windows任务栏实时监控股票行情&#xff1a;TrafficMonitor股票插件终极指南 【免费下载链接】TrafficMonitorPlugins 用于TrafficMonitor的插件 项目地址: https://gitcode.com/gh_mirrors/tr/TrafficMonitorPlugins 你是否曾经在工作时频繁切换窗口查看股票行情…...