Edit online

make 命令参考指南

3 Mar 2025
Read time: 3 minute(s)
make 是一个自动化构建工具,通过读取 Makefile 文件中的 指令来自动完成项目的编译、链接等构建任务。
警告: 在 make 命令中使用 -j 参数。Luban 在编译的过程中,默认使用了 -j0 参数,即根据系统的 CPU 核心数量,动态分配编译的线程。如果外部再提供 -j 参数,会导致 SDK 编译过程中出现一些高层次的目标编译 不同步的错误。
1. make 常用命令及功能描述

功能

命令

OneStep 简洁命令

列出当前可用的 board_defconfig 项目配置文件

make list

make l

应用指定的项目配置

make board_deconfig

-

编译整个项目

make all

make f

增量编译

make

-

清除编译生成的内容。

make clean

make c

清除编译生成的内容,并解压源码。

make distclean

-

查看当前项目有哪些编译目标。

make show-targets

-

快速创建新开发版配置。

make add_board

-

快速删除开发板配置。

make del_board

-

启动 menuconfig 配置工具,对 SDK 进行配置。

make menuconfig

make m

启动 menuconfig 中的 U-Boot 配置界面,配置 U-Boot 相关选项。

make uboot-menuconfig

make um 或 make bm

重新编译 U-Boot。

make uboot-rebuild

make b 或 make u

启动 menuconfig 中的内核配置界面,对 Linux 内核进行配置。

make linux-menuconfig

make km

启动 menuconfig 中的内核配置界面,对内核进行配置。

make kernel-menuconfig

make km

重新编译内核。

make linux-rebuild

make k

启动 menuconfig 中的 Busybox 配置界面,配置 Busybox 相关选项。

make busybox-menuconfig

-

make list

列出当前可用的 board_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_deconfig

应用项目配置,保存目录 target/configs。例如 d211_demo128_nand_defconfig

make 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

编译,自动进行修改检测,增量编译。

make all

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

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

make clean

清除编译生成内容。

make distclean

清除编译生成内容,以及解压源码。

make show-targets

查看当前项目有哪些编译目标。

make add_board

快速创建新开发版配置。

add_board 程序以原厂公板的配置文件为模板来创建新板子对应的目录和参数配置。一款产品对应一个板子,开发新产品时,需要在 SDK 中创建新的板子以及对应的配置。

make del_board

快速删除开发板配置。

输出示例如下:

Reference defconfig:(Delete one board base on selected defconfig)
    d211_demo100_nand_defconfig
    d211_demo128_nand_defconfig
    d211_demo88_nand_defconfig
    d211_demo88_nor_defconfig
    d211_demo88_nor_musl_defconfig
    d211_demo_defconfig
    d211_ota_defconfig
    d211_ota_emmc_defconfig
Select reference defconfig for detele board(number): 1
        d211_demo100_nand_defconfig

make menuconfig

进入 menuconfig 配置界面,用于修改项目的配置:


luban-menuconfig

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

make uboot-menuconfig

启动 menuconfig 中的 U-Boot 配置界面,配置 U-Boot 相关选项参数。保存配置后对应的修改都会同步到原有的 defconfig 文件中。

make uboot-rebuild

重新编译 U-Boot。

make linux-menuconfig

启动 menuconfig 中的 Linux 内核配置界面,配置内核相关选项参数。保存配置后对应的修改都会同步到原有的 defconfig 文件中。

make kernel-menuconfig 配置功能相同。

make kernel-menuconfig

启动 menuconfig 中的内核配置界面,配置内核相关选项参数。保存配置后对应的修改都会同步到原有的 defconfig 文件中。

make linux-rebuild

重新编译内核。

make busybox-menuconfig

启动 menuconfig 中的 Busybox 配置界面,配置 Busybox 相关选项参数。保存配置后对应的修改都会同步到原有的 defconfig 文件中。