简单制作Makefile文件
通常要制作Makefile是因为要编译链接的源文件较多且相互关联。如
在main函数中,调用了swap,print,printstr三个函数,而这三个函数和main函数都分别是放在各自不同的.c文件中的。
那么,制作Makefile可以一键生成可执行文件。
vim Makefile
第一行是希望生成的可执行文件的名字,这里取名main
main: main.o swap.o print.o printstr.o
后面都是生成main需要的目标文件,
第二行,写出怎样生成的规则,通常是用gcc编译即可,注意,要加上tab符号,不然会报错。
<tab>gcc -o main main.o swap.o print.o printstr.o前面的空格是由tab建生成的。
第三行到下面几行,是每个目标文件.o生成的规则。
main.o: main.c (生成main.o依赖main.c,故而要写上,如果还有头文件.h依赖,也要写上)
gcc -c main.c
swap.o: swap.c
gcc-c swap.c
print.o: print.c
gcc-c print.c
printstr:printstr.c
gcc-c printstr.c
最后一行可以写个clean命令来清除所生成的文件.
Clean:
rmmain main.o swap.o print.o printstr.o
如图
但是,这样写有些麻烦,可以用变量来替代一些重复的东西
如定义变量obj
obj= main.o swap.o print.o printstr.o
main: $(obj)
gcc-o main $(obj)
main.o:(后面没有写,是因为make工具会自动的找出main.c的,但是如果有其他头文件.h,则不可省略。
(这里,生成规则页不用写,make会自动知道,它很聪明)
swap.o:
print.o:
printstr.o:
clean:
rmmain mian.o swap.o print.o printstr.o
通常,采用第二种,简单明了,不易出错。