编译busybox
busybox编译busybox是一个源码包,可以编译生成一些列linux下常用的工具.从这里下载的busybox-1.26.2.tar.bz21/配置make menuconfigBusybox Settings--->[ ] Build BusyBox as a static binary (no shared libs)//上面这个选项是一定要选择的,这样才能把b
·
busybox编译
- busybox是一个源码包,可以编译生成一些列linux下常用的工具.
从这里下载的busybox-1.26.2.tar.bz2
1/配置
make menuconfig
Busybox Settings --->
[ ] Build BusyBox as a static binary (no shared libs)
//上面这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使它正常工作.
//好像动态连接也可以,再移植一些库就可以了,这个库对应编译器的库
Applets下面的东西都是你要生成的bash中的命令.
//编译器也可以再make menuconfig 中配置
//还可以在 make menuconfig 中配置安装目录
2/编译
make CROSS_COMPILE=arm-hisiv300-linux-
//这个东西可以直接通过make install就可以了,不用 install 目标 依赖于 编译
–
3/安装
make CROSS_COMPILE=arm-hisiv300-linux- install
在源码目录下生成了一个_install文件夹,文件夹下有bin linuxrc sbin usr目录
–
编译时出现的错误处理
util-linux/lib.a(nsenter.o): In function `nsenter_main':
nsenter.c:(.text.nsenter_main+0x188): undefined reference to `setns'
coreutils/lib.a(sync.o): In function `sync_main':
sync.c:(.text.sync_main+0x98): undefined reference to `syncfs'
collect2: error: ld returned 1 exit status
Note: if build needs additional libraries, put them in CONFIG_EXTRA_LDLIBS.
Example: CONFIG_EXTRA_LDLIBS="pthread dl tirpc audit pam"
make: *** [busybox_unstripped] Error 1
root@ubuntu:/home/linux/src/busybox-1.26.2# file util-linux/volume_id/xfs.o
util-linux/volume_id/xfs.o: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), not stripped
如上,会出现上述错误
只需要再去
make menuconfig 中把 nsenter 和 sync 去掉即可
参考资料
更多推荐
已为社区贡献5条内容
所有评论(0)