smart-build 是一款基于 xmake 实现的类 buildroot 的交叉构建系统,用于 RT-Thread Smart 开源操作系统。可以编译基础的软件包(调用xmake & xrepo的方式),构建出基本的应用程序,并输出相关文件到根文件系统文件夹下。
smart-build 目录结构如下所示:
smart-build
├───figures // 文档使用图片
├───rt-xrpo // 本地包索引
| |───packages
| | |───c
| | | |───cul // 软件包名字
| | | | |───patches // 补丁文件
| | | | |───xmake.lua // 编译配置
| | |───d
|───scripts // 配置文件,包括界面配置
| |───buildroot.lua // 自定义task脚本
| |───menuconfig.lua // 菜单逻辑脚本
| |───packages.lua // 菜单选项脚本
| |───platform.lua // 平台设置脚本
|───toolchains // 工具链配置
| |───aarch64.lua // aarch64 架构工具链配置脚本
| |───arm.lua // arm 架构工具链配置脚本
|───xmake.lua // 工程主文件
│───README.md // 工具使用说明
│───二次开发文档.md // 二次开发使用说明
首次使用,需要安装 xmake 环境
$ bash <(curl -fsSL https://xmake.io/shget.text)
$ source ~/.xmake/profile
如果需要使用最新的一些 xmake 特性,使用下面的命令更新到 dev 分支
xmake update -s dev
在 rttthread-smart/useraps 目录下,使用下面的命令下载 smart-build 工具
git clone https://github.com/xmake-io/smart-build.git
smart-build 存放位置
目前 smart-build 工具支持的命令行如下:
-m, --menuconfig Config and build the selected apps.
-b, --build Build the selected apps.
-c, --clean Clean all installed apps.
-a APP, --app=APP Select the debug app.
-d DEBUGDIR, --debugdir=DEBUGDIR Debug app source dir
打开 menuconfig 界面,配置完成后,自动拉取软件包进行编译安装。
xmake buildroot --menuconfig
不打开 menuconfig 界面,编译并安装已选择的软件包。
xmake buildroot --build
删除所有已经安装的apps (默认位置$HOME/.xmake/packages/*):
xmake buildroot --clean
使用命令 -v
可以查看详细的日志信息:
xmake buildroot --build -v
smart-build 工具支持生成可执行文件。以 lua app 为例,演示配置流程:
使用命令 xmake buildroot --menuconfig
打开配置界面
选择 Target options 配置目标架构和工具链
选择 Target packages 配置软件包
打开Interpreter landuages and scripting选项,选择 lua 软件包
保存配置,会自动进行编译:
生成的可执行文件,会自动拷贝到 userapps/root/bin 目录下
smart-build 支持生成静态库和动态库文件。
使用命令 xmake buildroot --menuconfig
打开配置界面
选择目标文件类型为静态库
选择 zlib 软件包
保存并退出,安装 zlib 静态库
使用命令 xmake buildroot --menuconfig
打开配置界面
选择目标文件类型为动态库
选择 zlib 软件包
保存并退出,安装 zlib 动态库
smart-build 工具支持调试已下载的软件包:
以 zlib 软件包为例,使用下面命令调试 zlib 软件包
xmake buildroot --debugdir=/home/liukang/.xmake/cache/packages/2210/z/zlib/1.2.8/source --app=zlib
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。