Makefile作为linux系统下工程的编译文件,其编写的学习必然十分必要。笔者通过经验得到一条学习Makefile之前需要的整体认识:Makefile基本上是一劳永逸型。也就是说你做了一个工程的makefile,这个makefile基本上在做其他工程的时候一样适用,唯一的区别也就是改改名字罢了。
编写Makefile的首先需要注意Makefile一共包括几个部分:下面这个链接写得很好。
总的来说主要包括以下几部分;
定义变量,如CC,AR,RM,CP
参数变量,如INCLUDES, CFLAGS
局部变量,如LIBS, OBJECTS, TARGET, INSTALLDIR
根据以上三部分,定义变量规则,即操作规则:
all:$(TARGET)
$(TARGET):$(OBJECTS)
$(CC) $(CFLAGS) $(OBJECTS) $(LIBS) -o $@
几个符号;
$<:所有$(OBJS)
$@: 所有$(TARGET)
-I+$(DIR):查询目录
-D+$(VARIABLE):添加外部变量
一切就绪。这里,笔者通过自己的一个非常简单的例子来讲解Makefile。
$HOME/Filefolder:src/files:cc.c cc1.c
$HOME/Filefolder:inc/File:cc1.c
$HOME/File:Makefile
Makefile文件内容如下;
cc.c:
cc1.h:
cc1.c
然后,在$HOME下执行;make VAR=1,$HOME下将生成可执行文件cc,执行就可以得到结果。
that‘s all!