Makefile初学(1)

《朱老师物联网大讲堂》学习笔记

网址:www.zhulaoshi.org


Makefile:项目管理工具


软件项目中,项目文件太多,管理不方便,Makefile可以解决这个问题,功能类似windows变成环境下的IDE。


初次接触linux下编程,对大多数人来说都应该是像下面这样做


gcc 1.c -o exe


这样做在当时也没什么


不过随着后期文件的增多,比如类似下面情况


gcc 1.c 2.c 3.c 4.c 5.c 6.c...... -o exe


就开始会觉得太麻烦了,这时候Makefile就派上用场了。


下面是一个最简单的Makefile文件的内容


all:

gcc 1.c 2.c -o exe


接着进化


all:1.c 2.c

gcc 1.c 2.c -o exe


继续进化


all: 1.c 2.c

gcc 1.c 2.c -o exe

clean:

rm exe


就进化到这里


再次说下目前涉及到的Makefile基本规矩


名字取Makefile或者makefile都行


像all叫做目标,目标一般会有多个,

后面跟的是依赖文件,that is to say,就是原材料,

新起的一行,是命令,也可以是linux下的其它命令。


命令前面的空白是tab键,需要注意的是不同环境下组成tab键的空格数不同。


make目标的时候,第一个目标是默认的,所以可以不写,

make不同目标,会执行对应目标下的命令,

如目标文件的生成时间比依赖文件新,make会提示不用make。


今天就讲到这里,下面是一个后面会讲解的Makefile文件,先见识下吧!


-c 
编译、汇编到目标代码,不进行链接。

led.bin: start.o 
arm-linux-ld -Ttext 0x0 -o led.elf $^
arm-linux-objcopy -O binary led.elf led.bin
arm-linux-objdump -D led.elf > led_elf.dis
gcc mkv210_image.c -o mkx210
./mkx210 led.bin 210.bin

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

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


clean:
rm *.o *.elf *.bin *.dis mkx210 -f


参考资料:《跟我一起学Makefile》 作者:陈皓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值