Edit online

命令详解

5 Dec 2024
Read time: 4 minute(s)

常规命令

make board_defconfig
make all
- 项目查看:make list                           --> 列出当前可用的项目配置
- 配置:make d211_demo128_nand_defconfig        --> 应用项目配置(保存目录:target/configs)
- 编译:make                                    --> 编译,自动进行修改检测,增量编译
- 清除:make clean                              --> 清除编译生成内容
- 清除中间代码:make distclean                  --> 清除编译生成内容,以及解压的源码
以下是执行 make list 后的输出结果示例:
make list
make d211_demo128_nand_defconfig
make

OneStep 加速命令

为了方便使用并加快开发效率,ArtInChip 开发了一系列的加速命令,如下所示:
注:

使用加速命令前需要执行 source scripts/onestep.sh 脚本。

lunch                     --> 应用项目配置
m                         --> 编译项目
croot|cr                  --> 回到 SDK 根目录
ctarget|ct                --> 回到 方案目录
ckernel|ck                --> 回到到 kernel 目录
godir|gd                  --> 跳转目录
hmm|h                     --> 获取帮助
source tools/onestep.sh                --> 一步直达命令
lunch d211_demo128_nand_defconfig      --> 选择 d211_demo128_nand_defconfig
m                                      --> 编译打包

make list

列出当前 SDK 所有可用的 defconfig
Built-in configs:
    d211_demo100_nand_defconfig         - Build for d211_demo100_nand
    d211_demo128_nand_defconfig         - Build for d211_demo128_nand
    d211_demo88_nand_defconfig          - Build for d211_demo88_nand
    d211_demo88_nor_defconfig           - Build for d211_demo88_nor
    d211_demo88_nor_musl_defconfig      - Build for d211_demo88_nor_musl
    d211_demo_defconfig                 - Build for d211_demo
    d211_ota_defconfig                  - Build for d211_ota
    d211_ota_emmc_defconfig             - Build for d211_ota_emmc

make board_defconfig

应用指定的项目配置,比如 d211_demo128_nand_defconfig

默认情况下,使用 output 作为项目的工作或输出目录。 使用 O=dir 命令可以指定一个专用的工作或输出目录,例如 make O=demo128_nand d211_demo128_nand_defconfig

当指定了 O=demo128_nand ,后续所有与该项目相关的 make 操作,都需要加上 O=demo128_nand 选项。用户也可以使用 cd demo128_nand 进入该目录后进行编译操作。

make menuconfig

用于修改项目的配置。


luban-menuconfig

配置完成后,保存并退出,相应的改动会同步到原有的 board_defconfig 文件中。

通过下列命令可以修改 uboot/linux/busybox 中的配置,且保存配置后对应的修改都会同步到原有的 defconfig 文件中:

  • make uboot-menuconfig

  • make linux-menuconfig

  • make busybox-menuconfig

make all

编译整个项目,包括 Bootloader、Kernel、应用层的 Pacakge、RootFS 以及生成最终的烧录镜像文件。

Luban 编译框架默认使用 make -j0,即根据主机的 CPU 核心个数决定使用多少个线程进行编译,外部不需要再提供 -j 参数。

SDK 具有源码修改检测功能,在修改了 SDK 中任意包的源码之后,执行 make all 会触发该包的 rebuild,通常是增量编译。

快捷命令

对于一些高频输入的命令,以下列示了简短的快捷命令映射:
make m   -> make menuconfig
make k   -> make linux-rebuild
make km  -> make linux-menuconfig
make b   -> make uboot-rebuild
make u   -> make uboot-rebuild
make bm  -> make uboot-menuconfig
make um  -> make uboot-menuconfig
make f   -> make all

辅助命令

make list               (make l)          --> 列出当前可用的 <board>_defconfig
make menuconfig         (make m)          --> 对 SDK 进行配置
make uboot-menuconfig   (make um)         --> 对 U-Boot 进行配置
make linux-menuconfig   (make km)         --> 对 Linux 内核进行配置
make busybox-menuconfig                   --> 对 Busybox 进行配置
警告:

勿在 make 命令中使用 -j 参数。

Luban 在编译过程中,已经默认使用了 -j0 参数,即根据系统的 CPU 核心数量, 动态分配编译的线程。如果外部再提供 -j 参数,会导致 SDK 编译过程中出现一些高层次的目标编译 不同步的错误。

其他重要命令

make show-targets              --> 查看当前项目有哪些编译目标
make <pkg>-extract             --> 仅对源码包进行解压
make <pkg>-patch               --> 仅对源码包进行 patch(如果有的话)
make <pkg>                     --> 完成从 extract/patch/../build/install

make <pkg>-reconfigure         --> 对该源码包重新执行配置、编译、安装
make <pkg>-rebuild             --> 对该源码包进行重新编译
make <pkg>-reinstall           --> 对该源码包进行重新安装
make <pkg>-prebuilt            --> 为该源码包生成预编译二进制压缩包

make <pkg>-clean               --> 删除该源码包的所有编译输出
make <pkg>-distclean           --> 删除该源码包的源码