《朱老师物联网大讲堂》学习笔记
网址: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》 作者:陈皓