前天老师给我们讲了下如何编写Makefile。现在来总结一下。
首先看下定义,这是从百科下弄下来的:Makefile文件 Makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
下面来简单的写一个Makefile文件。
首先先用vi 新建几个.c文件:main.c Calculate.c Report.c;新建Makefile: vi Makefile;%注意,Makefile的M要大写;下面是Makefile的内容。
cc = gcc;//定义一个变量存放编译器名,为了下面使用的方便,因为有些编译器的名字可能会很长的
ELF = test;//存放生成可执行文件名,同样是为了下面使用的方便
OBJS = main.o Calculate.o Report.o;//要生成的目标文件名
CFLAGS = -c -g -O -Wall;//-c 是编译命令,-g是调试命令,-O(0,1,2,3)是优化级别的命令,-Wall(Waring all)是输出所有waring
$(ELF):$(OBJS)
$(cc) $^ -o $@; // 前面是要加一个TAB的,这句话相当于gcc main.o Calculate.o Report.o -o test $^==所有的依赖文件,以空格分开,不包含重复的依赖文件。 $@==目标的完整名称。
%.o:%.c //所有的.o作为目标,依赖于所有.c
$(cc) $(CFLAGS) $< -o $@; // 前面是要加一个TAB的,相当于gcc -c -g -O -Wall main.c -o main.o $<==第一个依赖的文件
clean:
rm -Rf *.o $(ELF); // 前面是要加一个TAB的 清除前面编译生成的.o 命令为make clean
阅读(1517) | 评论(0) | 转发(0) |