Makefile

# Define macros for name of compiler
CC = gcc
# Define a macr o for the CC flags
CCFLAGS = -D_DEBUG -g -m486
# A rule for building a object file
test.o: test.c test.h
  $(CC) -c $(CCFLAGS) test.c

CC 定义一个编译器(变量)

CCFLAGS C编译器的选项 -D -W 生成警告信息等

test.o: test.c test.h  表示test.o是由test.c test.h生成
$(CC) -c $(CCFLAGS) test.c  $()表示取值 命令既为 gcc -c -D_DEBUG -g -m486 test.c 命令前要加tab键
$*
不包含扩展名的目标文件名称。
 
$+
所有的依赖文件,以空格分开,并以出现的先后为序,可能包含重复的依赖文件。
 
$<
第一个依赖文件的名称。
 
$?
所有的依赖文件,以空格分开,这些依赖文件的修改日期比目标的创建日期晚。
 
$@
目标的完整名称。
 
$^
所有的依赖文件,以空格分开,不包含重复的依赖文件。
 
$%
如果目标是归档成员,则该变量表示目标的归档成员名称。例如,如果目标名称为
(image.o),则 $@ 为 ,而 $% 为 image.o。
 
 1 CC=gcc                                    //定义编译器
 2 CFLAGS=-Wall -g -DDEBUG                     //Wall 生成所有警告信息
 3 LDFLAGS=
 4 LIBS=
 5 
 6 show_files: show_files.c
 7     $(CC) -o $@ $(LDFLAGS) $^ $(LIBS)    //初始化文件中的变量推导隐含规则
 8 
 9 clean:                                     //当执行 make clean时 删除 *.o
10     rm -rf *.o

 

 

posted on 2013-07-27 15:33  weiguoyuan  阅读(163)  评论(0编辑  收藏  举报

导航