buildroot 常用编译命令(前八章)

转载地址:https://blog.csdn.net/qq_39101111/article/details/78683742

BusyBox的
如果您已经有BusyBox配置文件,则可以直接在Buildroot配置中使用指定该文件 BR2_PACKAGE_BUSYBOX_CONFIG。否则,Buildroot将从默认的BusyBox配置文件开始。

要对配置进行后续更改,请使用make busybox-menuconfig打开BusyBox配置编辑器。

也可以通过环境变量指定一个BusyBox配置文件,尽管这不是建议的。有关更多详细信息,请参阅 第8.6节“环境变量”。

uClibc的uClibc的配置与BusyBox相同。用于指定现有配置文件的配置变量是 BR2_UCLIBC_CONFIG。后续更改的命令是make uclibc-menuconfig。Linux内核
如果你已经有一个内核配置文件,你可以直接在Buildroot配置文件中使用 变量BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG。

如果您还没有内核配置文件,您可以通过在Buildroot配置中指定defconfig来BR2_LINUX_KERNEL_USE_DEFCONFIG启动,使用 或者创建一个空文件并将其指定为自定义配置文件变量 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG。

要对配置进行后续更改,请使用make linux-menuconfig打开Linux配置编辑器。

BareboxBarebox的配置与Linux内核的配置相同。相应的配置变量是 BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG和 BR2_TARGET_BAREBOX_USE_DEFCONFIG。要打开配置编辑器,请使用make barebox-menuconfig。的U-Boot
U-Boot(版本2015.04或更新版本)的配置以与Linux内核相同的方式完成。相应的配置变量是BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG和 BR2_TARGET_UBOOT_USE_DEFCONFIG。要打开配置编辑器,请使用make uboot-menuconfig。


并非所有的目标都是可用的,.config文件中的一些设置可能会隐藏一些目标:

busybox-menuconfig仅在busybox启用(选中)时才起作用;
linux-menuconfig而linux-savedefconfig只有当工作 linux启动(选中);
uclibc-menuconfig 只有在内部工具链后端选择了uCl​​ibc C库时才可用;
barebox-menuconfig而barebox-savedefconfig只有当工作 barebox启动引导程序。
uboot-menuconfig而uboot-savedefconfig只有当工作 U-Boot启动引导程序。
完全重建单个包的最简单的方法是在中删除其构建目录output/build。然后Buildroot将重新提取,重新配置,重新编译和重新安装这个包。使用 make <package>-dirclean命令,之后使用make <package>命令
从编译步骤重新开始编译包的构建过程,则可以运行make <package>-rebuild,然后按make或make <package>。它将重新开始编译和安装软件包,但不是从头开始:它基本上是重新执行的,make(搜索很麻烦)而且make install 在软件包内部,所以它只会重建那些已经改变文件。

从配置步骤重新启动程序包的构建过程,可以运行make <package>-reconfigure,然后按make或make <package>。它将重新启动软件包的配置,编译和安装。


make graph-depends    生成已编译完整系统的依赖关系图   
output/graphs/graph-depends.pdf
make <pkg>-graph-depends 给定的包生成依赖关系图      
output/graph/<pkg>-graph-depends.pdf
软件的构建过程(按它们执行的顺序):make+

命令/目标    描述(这些命令都是单步运行)
make source

获取源代码(下载压缩包,克隆源代码库等)      下载源码

make depends

构建并安装构建软件包所需的所有依赖关系            检查依赖关系

extract

把源代码放在包构建目录中(提取压缩包,复制源代码等)    解压源码包

patch

应用补丁,如果有的话                                                                     添加补丁

configure

运行configure命令(如果有的话)                                                进行软件的配置

build

运行编译命令                                                                                    进行软件的编译

install-staging

目标软件包:如果需要,在分段目录中运行软件包的安装

install-target

目标软件包:如果需要,请在目标目录中运行软件包的安装

install

目标包:运行2个以前的安装命令                                                        进行软件的安装

主机包:在主机目录中运行包的安装

另外,还有其他一些有用的目标:

命令/目标    描述(这些命令都是单步运行)
show-depends

显示构建包所需的依赖关系

graph-depends

在当前的Buildroot配置的上下文中生成包的依赖关系图。有关依赖关系图的更多详细信息,请参见 本节的 第8.8节“绘制包之间的依赖关系”。

dirclean

删除整个包构建目录

reinstall

重新运行安装命令

rebuild

重新运行编译命令 - 这只有在使用该OVERRIDE_SRCDIR功能(重新指定源码包位置)时才有意义,或者直接在编译目录中修改文件时才有意义

reconfigure

重新运行configure命令,然后重建 - 这只有在使用该OVERRIDE_SRCDIR功能时才有意义,或者直接在build目录中修改文件


Buildroot的正常运行是下载一个tarball,解压缩,打补丁,配置,编译和安装

命令 (重新指定哪个软件包的源码位置)
<pkg1> _OVERRIDE_SRCDIR = / path / to / pkg1 / sources
<pkg2> _OVERRIDE_SRCDIR = / path / to / pkg2 / sources
例如:

LINUX_OVERRIDE_SRCDIR = / home / bob / linux /
BUSYBOX_OVERRIDE_SRCDIR = / home / bob / busybox /
然后运行 
make linux-rebuild all
make busybox-rebuild all


make <pkg>-rebuild all命令将源代码 <pkg>_OVERRIDE_SRCDIR复制到output/build/<package>-custom(仅修改过的文件被复制),并重新启动只是这个包的构建过程(包括 make rebuild 和make install)。


当Buildroot发现对于一个给定的包时,<pkg>_OVERRIDE_SRCDIR已经定义了一个包, 它将不再尝试下载,提取和修补包。它将直接使用指定目录中的可用源代码,而make clean不会触及此目录。
--------------------- 
作者:scw_zch 
来源:CSDN 
原文:https://blog.csdn.net/qq_39101111/article/details/78683742 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/kunkliu/article/details/84280876
今日推荐