Mac M1 M1 pro安装 protobuf 2.5.0

因为项目中的protobuf是2.5.0版本,但是旧版本的protobuf 不支持M1,此时需要修改源码重新编译

操作步骤:

  1. 从git上面下载对应版本的protobuf,地址:Release Protocol Buffers v2.5.0 · protocolbuffers/protobuf · GitHub
  2. 滑动到最下面选择
  3. 解压进入src/google/protobuf/stubs/这个目录下,编辑platform_macros.h
  4. 找到以下代码
    #else
    #error Host architecture was not detected as supported by protobuf
  5. 在上面增加
    #elif defined(__arm64__)
    #define GOOGLE_PROTOBUF_ARCH_ARM 1
    #define GOOGLE_PROTOBUF_ARCH_64_BIT 1

    最终结果如下图

  6. 在源码根目录下执行(****/protobuf-2.5.0/) cd 到protobuf-2.5.0目录
    //默认安装到/usr/local
    ./configure 
    make
    sudo make install
    protoc --version //查看是否安装成功

    卸载

    $ which protoc/usr/local/bin/protoc
    $ sudo rm /usr/local/bin/protoc
    

    上面参考

  7. 下面是第二种安装方案,我测试没有成功

  8. ./configure
    make
    make check
    make install
  9. 然后开始安装,中间会需要你同意,并按回车键,知道需要你输入命令
  10. 输入"sudo xcodebuild -license"命令,然后输入电脑密码
  11. 然后继续按回车键
  12. 到下图这一步的时候你需要输入"agree",表示同意软件许可条款
  13. 验证
    执行下面检查protoc命令是否存在
    which protoc
    

    注意事项

    下载红框里的tag版本后重新编译,不是下载source code哦

  14. 参考链接ProtoBuf2.5.0 Mac M1 cpu make failed · Issue #8836 · protocolbuffers/protobuf · GitHub

  15. 参考Mac M1(Apple Silicon) 安装 protobuf 2.5.0 - 简书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/190234.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode 【2342. 数位和相等数对的最大和】

给你一个下标从 0 开始的数组 nums ,数组中的元素都是 正 整数。请你选出两个下标 i 和 j(i ! j),且 nums[i] 的数位和 与 nums[j] 的数位和相等。 请你找出所有满足条件的下标 i 和 j ,找出并返回 nums[i] nums[j]…

【Linux】进程间是这样通信的--管道篇

TOC 目录 进程间通信的介绍 进程间通信的概念 进程间通信的目的 进程间通信的本质 进程间通信的分类 管道 什么是管道 匿名管道 pipe函数 匿名管道使用步骤 管道读写规则 管道的特点 1、管道内部自带同步与互斥机制 2、管道的生命周期随进程 3、管道提供的是流式…

DevSeo Studio设置中文界面

安装好DevSeo Studio后默认打开是欢迎页。 左下角Configure点击展开,选择plugins 弹出页面选择“installed”,然后输入chinese,默认是关闭的,点击enable将它启用,然后点击OK。 弹出页面点击“restart”重启即可。

face_recognition:高准确率、简单易用的人脸识别库 | 开源日报 No.79

ageitgey/face_recognition Stars: 49.8k License: MIT 这个项目是一个使用 Python 编写的人脸识别库,可以从图片中识别和操作人脸。它基于 dlib 开发,并采用深度学习技术构建了最先进的人脸识别模型,在 Labeled Faces in the Wild 数据集上…

搭建企业社区,如何激发员工互动?

本文是关于企业内部社区搭建后怎么运营,如何激发员工互动。 作为运营者,我们搭建企业内部员工的目的首先得明确下来,一般都是打造和宣扬企业内部文化,发布公司政策通知和行业动态、组织公司关键节点活动、以及员工经验分享资源分…

java智慧校园信息管理系统源码带微信小程序

一、智慧校园的定义 智慧校园指的是以云计算和物联网为基础的智慧化的校园工作、学习和生活一体化环境。以各种应用服务系统为载体,将教学、科研、管理和校园生活进行充分融合,让校园实现无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、…

订阅号和服务号有什么区别

服务号和订阅号有什么区别?服务号转为订阅号有哪些作用?我们都知道,服务号一个月只能发4次文章,但是订阅号每天都能发文章。不过在接收消息这一方面,服务号群发的消息有消息提醒,并显示在对话框&#xff1b…

天猫精灵/小爱同学+巴法云+Openwrt控制局电脑/群晖开关机

天猫精灵/小爱同学巴法云Openwrt控制局电脑/群晖开关机 事情的起因实战环境开始发车1.天猫精灵/小爱同学 连接 八法云 2.openwrt3.docker环节注意:sshpass 要先使用 ssh命令登陆一下你要唤醒或者远程关机的设备,不然可能因为一个登陆提示你是否登陆的yes/no导致程序没有反应,然…

vite vue3配置eslint和prettier以及sass

准备 教程 安装eslint 官网 vue-eslint ts-eslint 安装eslint yarn add eslint -D生成配置文件 npx eslint --init安装其他插件 yarn add -D eslint-plugin-import eslint-plugin-vue eslint-plugin-node eslint-plugin-prettier eslint-config-prettier eslint-plugin…

Python 爬虫入门

文章目录 Python 爬虫入门requests 库beautifulsoup4库函数findall(),find()函数get() 爬虫实例 1:抓小说爬虫实例 2:抓豆瓣 top 250 的电影信息后记 Python 爬虫入门 Python 的爬虫功能使得程序员可以快速抓取并分析网页中的信息&#xff0…

【数据结构】图的存储结构及实现(邻接表和十字链表)

一.邻接矩阵的空间复杂度 假设图G有n个顶点e条边,则存储该图需要O(n^2) 不适用稀疏图的存储 二.邻接表 1.邻接表的存储思想: 对于图的每个顶点vi,将所有邻接于vi的顶点链成一个单链表,称为顶点vi的边表&#xff08…

数组两种初始化方法

1.数组的静态初始化 静态初始化即在初始化数组时即规定了数组的大小以及数组中每个元素的值 有三种静态初始化的方法: 以初始化一个int类型的数组为例: 1.数组类型[] 数组名 new 数组类型[]{元素1,元素2...元素n}; int[] a new int[]{1,3,5}; 2.数…