主题 : 请教makefile问题 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 9820
精华: 0
发帖: 70
金钱: 550 两
威望: 224 点
综合积分: 140 分
注册时间: 2009-10-14
最后登录: 2018-02-08
楼主  发表于: 2009-11-22 21:33

 请教makefile问题

led_on.bin : led_on.S
arm-linux-gcc -g -c -o led_on.o led_on.S
arm-linux-ld -Ttext 0x0000000 -g led_on.o -o led_on_elf
arm-linux-objcopy -O binary -S led_on_elf led_on.bin
clean:
rm -f   led_on.bin led_on_elf *.o



上面是makefile文件。执行make后生成bin格式烧写文件。可是最后一个命令rm 又把这个bin格式文件删除了。那怎么还能保留来下载?迷惑
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2009-11-23 13:40
clean是这个makefile里指定的一个target, 这个target的内容(即rm -f led_on.bin led_on_elf *.o)通常只有在make clean的时候才会被执行.
关于makefile的概念,参考http://www.gnu.org/software/make/manual/make.html
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 10707
精华: 0
发帖: 1
金钱: 10 两
威望: 5 点
综合积分: 2 分
注册时间: 2009-11-14
最后登录: 2009-11-24
2楼  发表于: 2009-11-24 10:20
rm -f   led_on.bin led_on_elf *.o
前面有clean:
编译时执行make
当要清除以前编译生成的文件时执行: make clean
级别: 侠客
UID: 9820
精华: 0
发帖: 70
金钱: 550 两
威望: 224 点
综合积分: 140 分
注册时间: 2009-10-14
最后登录: 2018-02-08
3楼  发表于: 2009-11-24 21:46
谢谢。原来是这样啊。