MacM1(ARM)安装Protocol Buffers
MacM1(ARM)安装Protocol Buffers
本文目录
- MacM1(ARM)安装Protocol Buffers
- 3.21之前版本安装使用configure
- 3.22之后版本安装使用cmake
- 使用编译后的版本
protobuf下载地址:https://github.com/protocolbuffers/protobuf/releases
在运行./autogen.sh或./configure命令时出现"No such file or directory"错误,是因为protobuf版本或构建方式的问题
3.21之前版本安装使用configure
如果没有configure需要先运行./autogen.sh生成


-
配置
./configure // ./configure --prefix=/Users/xxx/protobuf(prefix 为安装目录,可自定义)
-
编译和安装
makesudo make install -
验证安装
protoc --version libprotoc 3.21.12 -
安装位置
which protoc /usr/local/bin/protoc -
配置环境变量
vim ~/.zshrcexport PROTOBUF=/usr/local/bin/protoc export PATH=$PROTOBUF/bin:$PATHsource ~/.zshrc
3.22之后版本安装使用cmake
-
运行CMake配置
cmake . -
报错,缺少
Abseil库CMake Error at third_party/utf8_range/CMakeLists.txt:31 (add_subdirectory):The source directory/xxx/protobuf-25.0/third_party/abseil-cppdoes not contain a CMakeLists.txt file.
https://github.com/protocolbuffers/protobuf/issues/12016
查看官方解释:cmake/README.md,需要下载
Abseil

-
abseil-cpp下载
官方github:https://github.com/abseil/abseil-cpp/releases
单独安装:https://abseil.io/docs/cpp/quickstart-cmake#getting-the-abseil-code -
将abseil-cpp内容放入
/third_party/abseil-cpp/目录下即可,不需要单独安装

-
在源码路径下开始编译
cmake . -DCMAKE_CXX_STANDARD=14// -Dprotobuf_BUILD_TESTS=OFF //配置CMake以跳过测试构建
cmake --build .
可以看到当前目录下已经可以查看编译完的protoc的版本了

-
安装
sudo make install
-
查看安装位置和全局版本
which protocprotoc --version
使用编译后的版本
不需要编译,直接使用,参考:https://grpc.io/docs/protoc-installation/
-
选择对应平台下载
protoc-<version>-<os>-<arch>.zip

-
解压

-
命令行查看
cd /Users/xx/protoc-25.0-osx-aarch_64/bin./protoc --version libprotoc 25.0
将这个包放入自定义文件夹,设置环境变量即可
相关文章:
MacM1(ARM)安装Protocol Buffers
MacM1(ARM)安装Protocol Buffers 本文目录 MacM1(ARM)安装Protocol Buffers3.21之前版本安装使用configure3.22之后版本安装使用cmake使用编译后的版本 protobuf下载地址:https://github.com/protocolbuffers/protobuf/releases 在运行./autogen.sh或./configure命…...
使用C++从0到1实现人工智能神经网络及实战案例
引言 既然是要用C来实现,那么我们自然而然的想到设计一个神经网络类来表示神经网络,这里我称之为Net类。由于这个类名太过普遍,很有可能跟其他人写的程序冲突,所以我的所有程序都包含在namespace liu中,由此不难想到我…...
React Router
一、简介 react router是一个构建基于react应用的路由管理库。允许你在程序中定义不同的路由和导航规则。以实现不同的url路径显示不同的组件。 二、相关技术 <Router><div><ul id "menu"><li><Link to "/home">Home<…...
https 是否真的安全,https攻击该如何防护,https可以被抓包吗?如何防止呢?
首先解释一下什么是HTPPS 简单来说, https 是 http ssl,对 http 通信内容进行加密,是HTTP的安全版,是使用TLS/SSL加密的HTTP协议 Https的作用: 内容加密 建立一个信息安全通道,来保证数据传输的安全&am…...
C++中声明友元
C中声明友元 不能从外部访问类的私有数据成员和方法,但这条规则不适用于友元类和友元函数。要声明友元 类或友元函数,可使用关键字 friend,如以下示例程序所示: 使用关键字 friend 让外部函数 DisplayAge( )能够访问私有数据成员…...
【GPT-3.5】通过python调用ChatGPT API与ChatGPT对话交流
文章目录 一、引言二、AIGC简介三、OpenAI介绍四、GPT-3.5介绍五、获得OpenAI API Key六、调用ChatGPT API实现与ChatGPT对话七、参考链接 一、引言 ChatGPT 的火爆,成功带火了AIGC,让它进入大众的视野。 ChatGPT 和Whisper API 开发者现在可以通过API将…...
Vatee万腾的科技探险:vatee数字化力量的前瞻征途
在Vatee万腾的科技探险中,我们领略到了一场数字化力量的前瞻征途,这是一次引领未来的创新之旅。Vatee万腾以其独特的科技理念和数字化力量,开启了一次引领行业的前瞻性征途,为数字化未来描绘出了崭新的篇章。 Vatee万腾的数字化力…...
github使用token认证
向github提交代码时报错:Support for password authentication was removed on August 13, 2021. Please use a personal access token instead。大概意思就是,原先的密码凭证从2021年8月13日开始就不能用了,后续必须使用个人访问令牌&#x…...
基于C#实现线段树
一、线段树 线段树又称"区间树”,在每个节点上保存一个区间,当然区间的划分采用折半的思想,叶子节点只保存一个值,也叫单元节点,所以最终的构造就是一个平衡的二叉树,拥有 CURD 的 O(lgN)的时间。 从…...
AI智能客服搭建教程附带免费源码
*名称* *版本要求* 服务器 CPU 2核心 ↑运存 4G ↑宽带 5M ↑ 服务器操作系统 Linux Centos7 运行环境 Nginx 1.18 PHP 7.3 MYSQL 5.6 服务器配置及环境要求 PHP设置 一、安装PHP扩展插件:fileinfo、redis、 sg11 二、删除PHP对应版本中的 pcntl_signal 、pcntl_signal_dis…...
Shell脚本:Linux Shell脚本学习指南(第三部分Shell高级)四
十九、Linux Shell trap命令:捕获信号 到目前为止,我们在本教程所见的脚本中还没有需要信号处理功能的,因为它们的内容相对比较简单,执行时间很短,而且不会创建临时文件。而对于较大的或者更复杂的脚本来说࿰…...
牛气霸屏-快抖云推独立版V1.6.7
介绍 快抖云推全插件独立版是最近很火的牛气霸屏系统独立版,牛气霸屏系统就是商家通过系统在线创建抖音或快手霸屏活动,并生成该活动的爆客二维码,用户通过扫二维码即可参加活动(活动可以是领取卡劵,抽奖等࿰…...
ffmpeg下载与配置环境变量
FFmpeg 是一个强大的多媒体框架,可以让用户处理和操纵音频和视频文件。具有易于使用的界面,用户可以在 Windows、Mac 或 Linux Ubuntu 系统上下载 FFmpeg 并将其提取到文件夹中。然后,该软件可以加入 PATH 环境变量中就可以快捷的使用软件了.…...
那些年,关于CKACKS认证的那些事儿?
前言 遥想2020年的年初,疫情封城封村之际,工作之余在B站将尚硅谷的linux中的k8s视频完整系统的学习了一遍,自此像是打通了任督二脉一般,开启了对k8s的探索之旅,一路也是磕磕绊绊的在工作中使用k8s。 终于在23年的6月仲…...
chromium通信系统-mojo系统(一)-ipcz系统代码实现-同Node通信
在chromium通信系统-mojo系统(一)-ipcz系统基本概念一文中我们介绍了ipcz的基本概念。 本章我们来通过代码分析它的实现。 handle系统 为了不对上层api暴露太多细节,实现解耦,也方便于传输,ipcz系统使用handle表示一个对象,hand…...
电路 buck-boost相关知识
BUCK-BOOST 文章目录 BUCK-BOOST前言一、DC-DC工作模式电容电感特性伏秒积平衡原理 二、BUCK电路三、BOOST电路四、BUCK-BOOST电路总结 前言 最近需要用到buck-boost相关的电路知识,于是便写下这篇文章复习一下。 一、DC-DC 在学习buck-boost电路之前我们先来看一…...
音频——S/PDIF
文章目录 BMC 编码字帧(sub-frame)格式帧(frame)格式参考S/PDIF 是 SONY 和 Philips 公司共同规定的数字信号传输规范,其实就是在 AES/EBU 上进行改动的家用版本。IEC60958 的标准规范囊括了以上两个规范。spdif 采用了双相符号编码(BMC),是将时钟信号和数据信号混合在一起…...
100篇带你入门——嵌入式系统中的程序调试方法
好久不见,最近小猿有点忙,才有时间给大家写文章。今天给大家讲一下在我们单片机开发都用哪些调试工具和调试方法,内容不完善的话,欢迎大家一起交流。 当涉及到嵌入式系统的程序调试时,选择正确的工具和方法是确保系统功…...
【Spring】Spring事务失效问题
📫作者简介:小明java问道之路,2022年度博客之星全国TOP3,专注于后端、中间件、计算机底层、架构设计演进与稳定性建设优化,文章内容兼具广度、深度、大厂技术方案,对待技术喜欢推理加验证,就职于…...
WiFi 发射链路 MCS 自适应机制介绍
链路适配是指发射机选择最优的MCS向特定的接收机发送数据的过程。链路自适应算法的实现有其特殊性,但通常基于测量的数据包错误率(PER)。大多数算法监视PER并调整MCS以跟踪一个最佳的长期平均值,以平衡由于使用更高MCS发送更短数据包而减少的开销和由于更…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
STM32---外部32.768K晶振(LSE)无法起振问题
晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...
Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...
MLP实战二:MLP 实现图像数字多分类
任务 实战(二):MLP 实现图像多分类 基于 mnist 数据集,建立 mlp 模型,实现 0-9 数字的十分类 task: 1、实现 mnist 数据载入,可视化图形数字; 2、完成数据预处理:图像数据维度转换与…...
