编译合宙CSDK项目luatos-soc-2022出错解决

文章讲述了在使用合宙的CSDK开发4G产品时遇到的编译错误,涉及-mthumb、-mapcs-frame等不被识别的GCC选项。通过分析发现是新版本xmake引入的bug导致,解决方法是更新xmake的lua脚本并重新编译。
摘要由CSDN通过智能技术生成

错误现象

最近在研究使用合宙的CSDK开发4G联网产品,编译合宙的开源项目luatos-soc-2022出现如下错误:

error: gcc: error: unrecognized command line option '-mthumb'; did you mean '-mtbm'?
gcc: error: unrecognized command line option '-mapcs-frame'
gcc: error: unrecognized command line option '-mslow-flash-data'; did you mean '-fno-fast-math'?
  > in project\example_mobile\src\example_mobile.c
warning: add_cxflags("-Werror=maybe-uninitialized") is ignored, please pass `{force = true}` or call `set_policy("check.auto_ignore_flags", false)` if you want to set it.
warning: add -v for getting more warnings ..
end

 

错误复现过程

编译该CSDK前需要安装相关编译环境,主要是交叉编译工具链GCC和xmake。两个工具下载好后,加入环境变量后重启电脑。然后修改CSDK中的build.bat文件。将文件中的GCC编译工具链路径修改正确。我的修改内容如下:

@echo off
set PROJECT_NAME=example
set LSPD_MODE=disable
rem you can set your gcc path
set GCC_PATH=E:\gcc-arm-none-eabi-10.3-2021.10

 

 

主要是修改上面代码的第五行要和实际解压的GCC工具链的目录一致。

然后执行这个build.bat文件就出现了文章开头的编译错误。

错误原因及解决

这个build.bat中其实最终是调用了xmake来构建编译代码,因为不懂xmake,最终联系了合宙技术支持,不得不说合宙的技术支持非常给力。最终了解到是因为新版本xmake引入的bug,没能正确识别工具链。CMD命令行中执行下这个代码

xmake update -s dev

然后删除CSDK目录下的.xmake文件夹重新编译就好了。

这个xmake update -s dev指令其实在xmake的官方文档也有解释。官方的描述是这样的:

如果xmake/core没动过,仅仅更新xmake的lua脚本改动,可以加-s/--scriptonly快速更新lua脚本

xmake update -s dev

总结及相关参考链接

综上,所以安装xmake之后最好要先在cmd命令行中先执行下xmake updata -s dev指令更新下xmake的lua脚本。

最后放置下相关参考链接如下:

合宙EC618芯片平台CSDK项目地址:https://gitee.com/openLuat/luatos-soc-2022

合宙EC618芯片平台CSDK编译工具链环境搭建:https://doc.openluat.com/wiki/37?wiki_page_id=4556

GNU ARM 嵌入式工具链官方下载地址:https://developer.arm.com/downloads/-/gnu-rm

xmake官方下载链接:https://github.com/xmake-io/xmake/releases

xmake安装升级官方说明文档: https://xmake.io/#/zh-cn/guide/installation?id=%e6%9b%b4%e6%96%b0%e5%8d%87%e7%ba%a7

 xmake官方帮助文档项目地址:https://github.com/xmake-io/xmake-docs/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值