Luatos-lua For MacOSX

0x00 缘起

看到Luatos-soc-pc项目能够编译到MacOS平台并且运行,所以尝试编译;可是Apple Clang编译器太过于严格,导致编译不通过。遂换到gcc-11编译通过,虽然其中依旧会报错(宏定义LUA_USE_MACOSX不起作用,导致不支持的头文件被编译而报错),但在xmake中配置工具链以及修改LuatOS源码后,编译通过。本贴特此记录,并存储编译后的工件,以备后用。

0x01 环境

硬件:Macbook Air 2020,Apple Silicon M1, 16 GBRAM

软件:MacOS14.6.1 (23G93) Sonoma,xmake v2.9.4+20240729,Xcode,Homebrew,gcc-11,VScode

0x02 操作

1. 安装gcc-11,使用homebrew,不需要替换全局c编译器(不需要修改~/.bash_profile,通过xmake配置工具链)

2. 拉取LuatOS和luatos-pc两个项目。

3. 在luatos-pc项目中,修改xmake文件,添加一行“set_config("toolchain","gcc-11")”,设置工具链。

4. 此时编译可以试试,但是我会出错。修改LuatOS中的文件,将“luat/models/luat_lib_i2c.c”中的870行的条件编译注释掉,同时保留返回0的函数“l_i2c_scan()”。

注意:编译非虚拟机时,就要放开注释!

5. 可以进行编译了,如以下代码:

xmake clean -a
xmake

xmake将默认识别系统以及CPU架构,所以能够编译成功。

0x03 资源

编译好的资源:https://download.csdn.net/download/u010160146/89636710

0x04 参考资料

1. https://gitee.com/openLuat/LuatOS

2. luatos-soc-pc: LuatOS在Windows/Linux/Mac等PC系统上的适配

3. xmake 工具链

4. xmake 安装

5. mac编译器由默认的clang切换为gcc_mac 安装 gcc 而不是 clang-CSDN博客

6. 将 Mac OS X 系统的 C、C++ 编译器从默认的 Clang 切换到 GCC_ghc mac-CSDN博客

7. 🌟MacOS 切换 Clang 为 GCC_macos clang的别名为gcc-CSDN博客【推荐】

0x05 后记

- Just Do it!

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

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

相关文章

Android 10.0 SystemUI下拉状态栏QSTileView去掉着色效果显示彩色图标功能实现

1.前言 在10.0的系统rom定制化开发中,在关于SystemUI的下拉状态栏中QSTileView的背景颜色设置过程中,在由于 系统原生有着色效果,导致现在某些彩色背景显示不是很清楚效果不好,所以需要去掉QSTileView的默认着色 背景显示原生的彩色背景,接下来就来实现相关功能 如图: 2.…

直击Vue2/3watch的底层逻辑,字符串长度对侦听效率的影响

目录 直击Vue2/3watch的底层逻辑,字符串长度对侦听效率的影响 一、Vue 2的底层原理 二、Vue 3的底层原理 三、基础类型性能消耗 四、数据变化比较原理 1、Vue 2 中的引用类型比较 2、Vue 3 中的引用类型比较 3、字符串比较(基础类型比较&#xf…

ARM——体系结构

计算机体系结构:冯诺伊曼 哈佛 冯诺依曼结构 冯诺依曼结构,也称冯诺依曼模型或普林斯顿结构,是根据冯诺依曼提出的存储程序概念设计的计算机体系结构。其主要特点包括: 存储程序:指令与数据都…

解决手机按键失灵!全新检测方案了解一下!

手机按键在手机设备中起着至关重要的作用,手机按键用于执行各种操作,如接听电话、挂断电话、调节音量、开关机等,方便用户进行基本操作。在生产过程中视觉检测需要确保按键的尺寸、形状和表面光滑度符合设计要求,以保证按键的正常…

基于Spring Boot的企业产品档案管理系统

目录 前言 功能设计 系统实现 获取源码 博主主页:百成Java 往期系列:Spring Boot、SSM、JavaWeb、python、小程序 前言 随着企业规模扩张和产品种类增多,手动管理方式不再适应不断增长的需求。因此,本研究的目标是设计和开发…

Cesium 缓冲区分析和查询

Cesium 缓冲区分析和查询 loadLabel() {this.collection new Cesium.BillboardCollection()this.viewer.scene.primitives.add(this.collection);this.points [];return new Promise((resolve,reject)>{fetch("../../public/json/hfty-point.json").then(res &g…

设计模式-标识域(Identity Field)

目的 为了在内存对象和数据库行之间维护标识而在对象内保存的一个数据库标识域。 关系数据库和内存对象的区别 区分行:关系数据库使用键来区分数据行,而内存对象不需要这样一个键 引用方法:对象系统中通过原始内存位置直接区分对象&#x…

【资源】wordpress 子比主题

简介 子比主题是一款功能强大的WordPress主题模板,支持社区论坛、商城、支付、古腾堡编辑器等多种功能。很多资源类网站都是基于此搭建的。搭建后的效果基本上和官网一致,可查看官网的演示效果。 官方网站:https://www.zibll.com/ 如要获取…

安装MySQL数据库【后端 8】

安装MySQL数据库 MySQL是世界上最流行的开源关系型数据库管理系统(RDBMS)之一,广泛应用于Web应用程序开发中。无论你是初学者还是有一定经验的开发者,掌握MySQL的安装都是必不可少的技能。本文将指导你如何在不同的操作系统上安装…

Elasticsearch:使用 ES|QL 进行地理空间搜索

作者:来自 Elastic Craig Taverner 多年来,Elasticsearch 一直具有强大的地理空间搜索和分析功能,但其 API 与典型的 GIS 用户习惯的 API 截然不同。在过去的一年中,我们添加了 ES|QL 查询语言,这是一种管道查询语言&a…

MapReduce_Writable序列化

使用序列化封装对象 将输入的csv按照员工号拆分成每个员工&#xff0c;每个员工存储为员工对象 数据处理过程 employee_noheader.csv 1,ZhangSan,101,5000 2,LiSi,102,6000 3,WangWu,101,5500 4,ZhaoLiu,103,7000 5,SunQi,102,6500pom.xml <?xml version"1.0&qu…

【大模型系列】更像人类行为的爬虫框架

随着大规模模型技术的兴起&#xff0c;我们可以看到百模大战、各种智能体、百花齐放的应用场景&#xff0c;那么作为一名前端开发者&#xff0c;以前端的视角&#xff0c;我们应当如何积极做好技术储备&#xff0c;开拓技术视野&#xff0c;在智能体时代保持一定的竞争力呢&…

ElasticSearch聚合操作详解

文章目录 聚合操作聚合的分类测试数据Metric AggregationBucket Aggregation获取job的分类信息限定聚合范围Range & Histogram聚合聚合嵌套 Pipeline Aggregation聚合的作用范围排序ES聚合分析不精准原因分析聚合性能优化启用 eager global ordinals 提升高基数聚合性能插入…

打造高效信息发布平台小程序:设计思路与实践

在当今这个信息爆炸的时代&#xff0c;信息发布平台已成为连接用户与内容的桥梁&#xff0c;小程序以其独特的优势成为众多企业和个人开发者青睐的选择。开发一款专注于信息发布与共享的小程序&#xff0c;旨在为用户打造一个便捷、高效、互动性强的信息获取平台&#xff0c;具…

luckyexcel 编辑预览excel文件

luckyexcel 编辑预览excel文件 支持后端传文件流预览编辑&#xff0c;也支持选择本地文件编辑预览 看效果 上代码 <template><div style"margin: 30px"><div class"button-box2"><div><div style"color: red">…

Windows File Recovery卡在99%怎么解决?实用指南!

为什么会出现“Windows File Recovery卡在99%”的问题&#xff1f; Windows File Recovery&#xff08;Windows文件恢复&#xff09;是微软设计的命令行应用程序。它可以帮助用户从健康/损坏/格式化的存储设备中恢复已删除/丢失的文件。 通过输入相关命令&#xff0c;设置源/…

整理 酷炫 Flutter 开源UI框架 按钮

flutter_percent_indicator Flutter 百分比指示器库 项目地址&#xff1a;https://github.com/diegoveloper/flutter_percent_indicator 项目Demo&#xff1a;https://download.csdn.net/download/qq_36040764/89631340

jenkins 安装以及自动构建maven项目并且运行

在这里找到你对应jdk的版本的jenkins包 War Jenkins Packages 我这里用的使java8,所以下载 https://mirrors.jenkins.io/war-stable/2.60.1/jenkins.war 然后jenkins可以安装到centos系统 在本地windows系统运行命令行 scp C:\Users\98090\Downloads\jenkins.war root@192…

模拟三层--控制层、业务层和数据访问层

三层的概念:https://developer.aliyun.com/article/1390024 一、新建一个项目 我新建好的项目名为spring__ioc_02,然后在 src-main-java 下建立三层&#xff08;数据访问层、业务层和控制层&#xff09;的包 dao、service 和controller、并在包下建立相应的接口和实现类 Proje…

【2】初识JVM

目录 一.什么是JVM 二.JVM的功能 2.1即时编译 三.常见的JVM​编辑 ​编辑 总结​编辑 一.什么是JVM 二.JVM的功能 2.1即时编译 三.常见的JVM 总结