linux makefile 单文件 多文件编译

单文件

led.bin:led.s led.lds
	arm-angstrom-linux-gnueabi-gcc -c led.s -o led.o
	arm-angstrom-linux-gnueabi-gcc -c delay.s -o delay.o
	arm-angstrom-linux-gnueabi-ld -Tled.lds led.o delay.o -o led.elf
	arm-angstrom-linux-gnueabi-objcopy -O binary -S led.elf led.bin
	arm-angstrom-linux-gnueabi-objdump -d led.elf>led.dis

clean:
	rm -fr *.o *.elf *.bin *.dis

多文件

objs = start.o init.o armboot.o serial.o

bootloader.bin:$(objs)
	arm-linux-gnu-ld -Tbootloader.lds -o bootloader.elf $^
	arm-linux-gnu-objcopy -O binary -S bootloader.elf $@
	arm-linux-gnu-objdump -d bootloader.elf >bootloader.dis
	
%.o:%.c
	arm-linux-gnu-gcc -c -Wall -02 -o $@ $<
	
%.o:%.S
	arm-linux-gnu-gcc -Wall -O2 -c -o $@ $<
	
clean:
	rm -fr *.bin *.elf *.o *.dis

 

posted @ 2024-01-08 11:19  微笑的''80  阅读(6)  评论(0)    收藏  举报