命令详解
常规命令
make board_defconfig
make all
- 项目查看:make list --> 列出当前可用的项目配置
- 配置:make d211_demo128_nand_defconfig --> 应用项目配置(保存目录:target/configs)
- 编译:make --> 编译,自动进行修改检测,增量编译
- 清除:make clean --> 清除编译生成内容
- 清除中间代码:make distclean --> 清除编译生成内容,以及解压的源码
make list
make d211_demo128_nand_defconfig
make
OneStep 加速命令
使用加速命令前需要执行 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
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
用于修改项目的配置。
配置完成后,保存并退出,相应的改动会同步到原有的 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 --> 删除该源码包的源码