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 操作
-
安装gcc-11,使用homebrew,不需要替换全局c编译器(不需要修改~/.bash_profile,通过xmake配置工具链)
-
拉取LuatOS和luatos-pc两个项目。
-
在luatos-pc项目中,修改xmake文件,添加一行"set_config("toolchain","gcc-11")",设置工具链。
- 此时编译可以试试,但是我会出错。修改LuatOS中的文件,将"luat/models/luat_lib_i2c.c"中的870行的条件编译注释掉,同时保留返回0的函数"l_i2c_scan()"。
注意:编译非虚拟机时,就要放开注释!
- 可以进行编译了,如以下代码:
bash
xmake clean -a
xmake
xmake将默认识别系统以及CPU架构,所以能够编译成功。
0x03 资源
编译好的资源:https://download.csdn.net/download/u010160146/89636710
0x04 参考资料
0x05 后记
- Just Do it!