编译默认的配置:
$ cd busybox-1.1.1$ make defconfig$ make
结果是一个相当大的 映像 , 不过这只是开始使用它的最简单的方法 。我们可以直接调用这个新映像 , 这会产生一个简单的 Help页面 , 里面包括当前配置的命令 。要对这个映像进行测试 , 我们也可以对一个命令调用来执行 , 展示命令的执行和中的 ash shell:
$ ./busybox pwd/usr/local/src/busybox-1.1.1$ ./busybox ash/usr/local/src/busybox-1.1.1 $ pwd/usr/local/src/busybox-1.1.1/usr/local/src/busybox-1.1.1 $ exit$
在这个例子中 , 我们调用了 pwd(打印工作目录)命令 , 使用进入了 ash shell , 并在 ash 中调用了 pwd 。
如果您正在构建一个具有特殊需求的嵌入式设备 , 那就可以手工使用make 目标来配置 的内容 。如果您熟悉 Linux 内核的编译过程 , 就会注意到与配置 Linux 内核的内容所使用的目标相同 。实际上 , 它们都采用了相同的基于 的应用程序 。
使用手工配置 , 我们可以指定在最终的映像中包含的命令 。我们也可以对环境进行配置 , 例如包括对 NSA(美国国家安全代理)的安全增强 Linux() , 指定要使用的编译器(用来在嵌入式环境中进行交叉编译)以及应该静态编译还是动态编译 。
图1 给出了的主界面 。在这里我们应该可以看到可以为配置的不同类型的应用程序() 。
文章插图
要手工配置 , 请使用下面的命令:
$ make menuconfig$ make
这为我们提供了可以调用的的二进制文件 。下一个步骤是围绕构建一个环境 , 包括将标准 Linux 命令重定向到二进制文件的符号链接 。我们可以使用下面的命令简单地完成这个过程:
$ make install
默认情况下 , 这会创建一个新的本地子目录 , 其中包含了基本的 Linux 环境 。在这个根目录中 , 您会找到一个链接到的程序 。这个程序在构建安装盘或急救盘(允许提前进行模块化的引导)时非常有用 。同样是在这个根目录中 , 还有一个包含操作系统二进制文件的 /sbin 子目录 。
还有一个包含用户二进制文件的 /bin 目录 。在构建软盘发行版或嵌入式初始 RAM 磁盘时 , 我们可以将这个目录迁移到目标环境中 。我们还可以使用 make 程序的选项将安装目录重定向到其他位置 。例如 , 下面的命令就使用 /tmp/ 根目录来安装这些符号链接 , 而不是使用 ./ 目录:
$ make PREFIX=/tmp/newtarget install
使用make 目标创建的符号链接都来自于 .links 文件 。这个文件是在编译时创建的 , 它包含了已经配置的命令清单 。在执行时 , 就会检查 .links 文件确定要创建的符号链接 。
到的命令行链接也可以使用在运行时动态创建 。LLER 选项就可以启用这个特性 , 在运行时可以这样执行:
$ ./busybox --install -s$
-s 选项强制创建这些符号链接(否则就创建硬链接) 。这个选项要求系统中存在 /proc 文件系统 。
编译选项
包括了几个编译选项 , 可以帮助为我们编译和调试正确的。
文章插图
表 1. 为提供的几个 make 选项
在定义配置时 , 我们只需要输入 make 就可以真正编译二进制文件 。例如 , 要为所有的应用程序编译 , 我们可以执行下面的命令:
- 梦见鱼是什么意思?这些梦境解析你知道吗?
- 《狄仁杰之杀人火凤凰》是不是真实事件?
- 梦到被蛇咬的寓意是啥,你知道吗
- 水有什么寓意?梦见水是什么意思?
- 梦见自己杀人,这梦是凶是吉?进来看一下吧
- 如何下载视频到电脑
- 淘宝点题成金如何玩淘宝点题成金玩法介绍【教程】
- ios11.1如何升级ios11.1固件下载和升级方法
- 尼康D700如何对焦锁定
- 不要人云亦云 一氧化二氢恶作剧纯属恶搞,其实就是水