首页 > 其他 > 详细

如何编写一个简单的makefile

时间:2014-07-22 23:15:02      阅读:453      评论:0      收藏:0      [点我收藏+]

一个规则的构成

目标:依赖1,依赖2······

       命令

例子:

bubuko.com,布布扣
objs := init.o nand.o head.o  main.o

nand.bin : $(objs)
    arm-linux-ld -Tnand.lds -o nand_elf $^
    arm-linux-objcopy -O binary -S nand_elf $@
    arm-linux-objdump -D -m arm  nand_elf > nand.dis 

%.o:%.c
    arm-linux-gcc -Wall -c -O2 -o $@ $<

%.o:%.S
    arm-linux-gcc -Wall -c -O2 -o $@ $<

clean:
    rm -f  nand.dis nand.bin nand_elf *.o
bubuko.com,布布扣

解释:

(1)objs变量可以起到“宏”的作用,引用变量时,用$(objs)。

(2)最终目标为nand.bin,它的依赖为init.o nand.o head.o  main.o。

(3)表示把所有的c语言文件用arm-linux-gcc生成对应的o文件。

%.o:%.c
       arm-linux-gcc -Wall -c -O2 -o  $@  $<

(4)表示把所有的s语言文件用arm-linux-gcc生成对应的o文件。

%.o:%.s
       arm-linux-gcc -Wall -c -O2 -o $@ $<

(5)表示arm-linux-ld以链接脚本nand.lds为规则,将init.o nand.o head.o  main.o链接生成一个nand_elf的文件。

arm-linux-ld -Tnand.lds -o nand_elf $^ 

(6)表示将nand_elf文件转换成bin文件。

arm-linux-objcopy -O binary -S nand_elf $@ 

(7)表示将nand_elf转换生成nand.dis的反汇编文件。

arm-linux-objdump -D -m arm  nand_elf > nand.dis

其中:

$^ 所有依赖目标的集合

$@ 规则中的目标文件集

$< 依赖中第一个目标的名字。 

如何编写一个简单的makefile

原文:http://www.cnblogs.com/amanlikethis/p/3514441.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!