交叉编译

Linux软件从一开始就使用GNU的交叉编译工具链,这些GNU的工具和软件都是开源的,可以免费从http://www.gnu.org或其镜像上下载和编译。

all:
	arm-linux-gcc -c main.c -o main.o  
	arm-linux-gcc -c serial.c -o serial.o
	arm-linux-ld -Tuart.lds -e main main.o serial.o -o uart.elf
	arm-linux-objcopy -S -O binary uart.elf uart.bin
	arm-linux-objdump -D -m arm uart.elf > uart.dis
arm-linux-gcc 编译.c或.S开头的C程序或汇编程序 -c仅编译或汇编,不进行链接  -o定义输出文件

arm-linux-ld链接器,用来将多个.o或库文件链接成一个可执行文件,   -T定义链接脚本 -e定义起始地址   -o定义输出文件名

arm-linux-objcopy转换可执行文件的格式    -S移去所有的符号和重定位信息   -O <bfdname>创建格式为“bfdname”的输出文件

arm-linux-objdump查看目标文件(.o)和库(.a)的信息,-D显示所有段的汇编内容,-m配置处理器架构

另一个需要介绍的工具是Busybox,官方网站为http://busybox.net 。Busybox最初是由Bruce Perens在1996年为Debian GNU/Linux编写的,通过共享公共元素将多个工具放置在一个可执行程序中,达到了减少占用空间的目的。

Busybox是许多标准Linux工具的一个单个可执行实现,它包含了一些常用的工具如ls、cd等,也包含了一些复杂的工具如grep、find、mount等。业内人士常称Busybox为Linux工具中的瑞士军刀。对于嵌入式Linux而言,出于节约内存的需要,Busybox是一个必不可少的工具


你可能感兴趣的:(交叉编译)