|
清单 9. 将符号链接安装到另外一个目录中
$ make PREFIX=/tmp/newtarget installR5hLinux联 $
|
使用 install make 目标创建的符号链接都来自于 busybox.links 文件。这个文件是在编译 BusyBox 时创建的,它包含了已经配置的命令清单。在执行 install 时,就会检查 busybox.links 文件确定要创建的符号链接。
到 BusyBox 的命令行链接也可以使用 BusyBox 在运行时动态创建。CONFIG_FEATURE_INSTALLER 选项就可以启用这个特性,在运行时可以这样执行:
清单 10. 在运行时创建命令链接
$ ./busybox --install -s $
|
-s 选项强制创建这些符号链接(否则就创建硬链接)。这个选项要求系统中存在 /proc 文件系统。
BusyBox 编译选项
BusyBox 包括了几个编译选项,可以帮助为我们编译和调试正确的 BusyBox。
表 1. 为 BusyBox 提供的几个 make 选项
make目标 说明
help 显示 make 选项的完整列表 defconfig 启用默认的(通用)配置 allnoconfig 禁用所有的应用程序(空配置) allyesconfig 启用所有的应用程序(完整配置) allbareconfig 启用所有的应用程序,但是不包括子特性 config 基于文本的配置工具 menuconfig N-curses(基于菜单的)配置工具 all 编译 BusyBox 二进制文件和文档(./docs) busybox 编译 BusyBox 二进制文件 clean 清除源代码树 distclean 彻底清除源代码树 sizes 显示所启用的应用程序的文本/数据大小
|
在定义配置时,我们只需要输入 make 就可以真正编译 BusyBox 二进制文件。例如,要为所有的应用程序编译 BusyBox,我们可以执行下面的命令:
清单 11. 编译 BusyBox 二进制程序
$ make allyesconfig $ make $
|
R5hLinux联盟
压缩 BusyBox
如果您非常关心对 BusyBox 映像的压缩,就需要记住两件事情:
1. 永远不要编译为静态二进制文件(这会将所有需要的库都包含到映像文件中)。相反,如果我们是编译为一个共享映像,那么它会使用其他应用程序使用的库(例如 /lib/libc.so.X)。
2. 使用 uClibc 进行编译,这是一个对大小进行过优化的 C 库,它是为嵌入式系统开发的;而不要使用标准的 glibc (GNU C 库)来编译。
BusyBox 命令中支持的选项
BusyBox 中的命令并不支持所有可用选项,不过这些命令都包含了常用的选项。如果我们需要知道一个命令可以支持哪些选项,可以使用 --help 选项来调用这个命令,如清单 12 所示。
清单 12. 使用 --help 选项调用命令
$ ./busybox wc --help BusyBox v1.1.1 (2006.04.09-15:27+0000) multi-call binary Usage: wc [OPTION]... [FILE]... Print line, word, and byte counts for each FILE, and a total line if
more than one FILE is specified. With no FILE, read standard input. Options: -c print the byte counts -l print the newline counts -L print the length of the longest line -w print the word counts $
|
共5页: 上一页 [1] [2] 3 [4] [5] 下一页
|