scons 命令参考指南
SCons 是一个跨平台的构建系统,被广泛应用于软件开发项目中,支持在 Windows 和 Linux 上使用,且用法相同。本节列示了常用的 SCons 命令和功能。
scons --list-def
解压缩 SDK 后,使用 scons --list-def 命令可以罗列 SDK 中发布的所有项目名称,方便用户查看和管理可用的项目资源。示例如下:
scons --list-def
scons: Reading SConscript files ...
Built-in configs:
0. d12x_demo68-nand_baremetal_bootloader
1. d12x_demo68-nand_rt-thread_helloworld
2. d12x_demo68-nor_baremetal_bootloader
3. d12x_demo68-nor_rt-thread_helloworld
4. d12x_hmi-nor_baremetal_bootloader
5. d12x_hmi-nor_rt-thread_helloworld
6. d13x_demo88-nand_baremetal_bootloader
7. d13x_demo88-nand_rt-thread_helloworld
8. d13x_demo88-nor_baremetal_bootloader
9. d13x_demo88-nor_rt-thread_helloworld
10. d13x_kunlunpi88-nor_baremetal_bootloader
11. d13x_kunlunpi88-nor_rt-thread_helloworld
12. d21x_demo128-nand_baremetal_bootloader
13. d21x_demo128-nand_rt-thread_helloworld
14. g73x_demo100-nor_baremetal_bootloader
15. g73x_demo100-nor_rt-thread_helloworld
scons --apply-def=项目索引或名称
- 使用数字索引,例如 --apply-def=3,即应用列表中的第三个配置(从 0 开始计数)。以下示例表示应用名为
d12x_demo68-nor_rt-thread_helloworld_defconfig
的配置。
scons --apply-def=3
scons: Reading SConscript files ... Load config from target\configs\d12x_demo68-nor_rt-thread_helloworld_defconfig scons --apply-def=d12x_demo68-nor_rt-thread_helloworld_defconfig scons: Reading SConscript files ... Load config from target\configs\d12x_demo68-nor_rt-thread_helloworld_defconfig
- 直接使用配置名称,例如
--apply-def=d12x_demo68-nor_rt-thread_helloworld_defconfig。
scons --apply-def=d12x_demo68-nor_rt-thread_helloworld_defconfig
scons: Reading SConscript files ... Load config from target\configs\d12x_demo68-nor_rt-thread_helloworld_defconfig
scons --menuconfig
使用命令 scons --menuconfig 可以调出 menuconfig 图形界面,以便根据需要调整项目设置。
scons --menuconfig
完成配置后,保存并退出配置界面,SCons 会根据所做的更改重新编译项目。
scons
使用命令 scons 开始构建过程,编译成功后生成镜像文件。默认在简洁模式下进行构建,不会输出编译选项等信息。
scons
Creating e:\luban-lite\output/d12x_demo68-nor_rt-thread_helloworld/images/usbupg-ddr-init.aic ...
Creating e:\luban-lite\output/d12x_demo68-nor_rt-thread_helloworld/images/bootloader.aic ...
Creating e:\luban-lite\output/d12x_demo68-nor_rt-thread_helloworld/images/os.aic ...
Image header is generated.
Meta data for image components:
Meta for image.updater.psram offset 0x1600 size 0x6010 (24592)
Meta for image.updater.spl offset 0x7e00 size 0x2d310 (185104)
Meta for image.info offset 0x0 size 0x800 (2048)
Meta for image.target.spl offset 0x35600 size 0x2d310 (185104)
Meta for image.target.os offset 0x62e00 size 0xd8800 (886784)
Meta for image.target.rodata offset 0x13b600 size 0x2b000 (176128)
Meta for image.target.data offset 0x166600 size 0x700000 (7340032)
Packing file data:
uartupg-psram-init.aic
bootloader.aic
bootloader.aic
d12x_os.itb
rodata.fatfs
data.lfs
Image file is generated: e:/luban-lite/output/d12x_demo68-nor_rt-thread_helloworld/images/d12x_demo68-nor_v1.0.0.img
Luban-Lite is built successfully
scons: done building targets.
scons --verbose
使用 scons --verbose 可以显示更详细的编译信息,包括编译器选项等,便于调试。
scons --clean
运行命令 scons --clean 清除上一次编译构建过程中生成的所有临时文件,确保在下一次编译构建时,所有源文件都会被重新编译。
scons --clean
或者使用缩写命令:
scons -c
scons --save-def
保存当前板卡默认配置。
scons --info
显示当前工程信息,可使用简洁命令 scons i。
scons distclean
清除工具链和输出目录。
scons target=TARGET
生成目标工程,例如 eclipse/eclipse_sdk,其中 TARGET 是需要生成的目标工程名称。
scons genconfig
通过 rtconfig.h 生成 .config 文件。
scons useconfig=USECONFIG
通过配置文件生成 rtconfig.h,其中 USECONFIG 是需要使用的配置文件路径。
scons --run-qemu
运行当前编译出来的 qemu 目标文件。
scons --list-size
size 命令列出所有 .o 文件下 text/data/bss 中各个 section 的大小。
scons --pkgs-update
下载选择的在线 packages。