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) 编辑 收藏 举报