busybox交叉编译

 

 

 

busybox是很好编译的,有跟编译内核差不多的menuconfig,而且其中选项比kernel简洁得多了。

 

我是在Linux下编译的,具体的过程如下:

 

1、准备

 

ARM的交叉编译工具,我这里使用的是 gcc-4.1.2-glibc-2.5-nptl-3

 

Busybox的源代码

下载地址:http://www.busybox.net/

 

2、编译busybox

 

在busybox目录下执行

 

make menuconfig

进入图形选择模式,这里有几个选项是必选或者必填的

 

Busybox Settings -> Build Options ->

[*] Build BusyBox as a static binary (no shared libs)

//这个是静态编译的选项,这样编译出来的可执行文件才不依赖系统的动态链接库

 

(/home/cpp/gcc-4.1.2-glibc-2.5-nptl-3/arm-none-linux-gnueabi/bin/arm-none-linux-gnueabi-) Cross Compiler prefex

//这是交叉编译器的”路径+前缀”,这里要根据实际安装位置填,这是在我的机器上安装位置

//  (  )  Additional CFLAGS    注意!这个不选!!!!    不要多此一举的选择并在里面填写头文件的路径

 

Busybox Settings -> Installation Options->

[*] Don’t use /usr

//这样子编译出来的busybox才不会安装到你主机的/usr目录下。一定要选上!!

 

接下来退出menuconfig模式后运行make编译

在编译完成是我看到这样的log:

————————————————————————————————————————————————

Trying libraries: crypt m

 Library crypt is not needed, excluding it

 Library m is needed, can't exclude it (yet)

Final link with: m

————————————————————————————————————————————————

开始还以为出了什么问题呢,没看懂这个log的意思。但是至少发现busybox已经生成了。。。。。如果有人知道这个含义请给我回复下,谢谢

 

完成后会在当前目录生成busybox的可执行文件,用你的adb push 把它搞到目标板上即可

 

顺便附上几个关于busybox的网站

http://www.busybox.net/

http://www.busybox.net/downloads/BusyBox.html

http://www.ibm.com/developerworks/cn/linux/l-busybox/#resources

http://www.ibm.com/developerworks/cn/linux/l-busybox/#

 

 

 

你可能感兴趣的:(linux,Build,工具,compiler,图形,编译器)