makefile规则
时间:2011-05-06 来源:明日之星
makefile 的规则:
1、显式规则:
目标文件:依赖文件
1014 1015:1014.c 1014.h 1015.c 1015.h##因此,要能区分多目标规则和模式规则,静态规则的区别。
@echo $<
#等同于 1014 :1014.c 1014.h 1015.c 1015.h
@echo $< 1015 :1014.c 1014.h 1015.c 1015.h
@echo $<
#和下面的不同 1014 :1014.c 1014.h
@echo $< 1015 :1015.c 1015.h
@echo $<
2、隐式规则:make数据库中默认的规则列表,可通过make -p查看
3、模式规则:通过模式匹配当前文件夹中的文件,等同与用户创建的隐式规则,优先级比默认高一些。
隐含规则的选取要满足以下条件: 隐含规则的依赖要么是存在的文件或者是一个显示规则的目标,因此隐含规则链要产生的前提是中间文件必须存在
目标模式:依赖模式
%:%.cpp
@echo $<
4、静态规则:利用目标模式找出目标集合的匹配,并以此导出对应的依赖文件
目标:目标模式:依赖模式
dest:=$(wildcard *.c *cpp)
cfile:=$(filter %.c,$(dest))
cppfile:=$(filter %.cpp,$(dest))
all:$(basename $(dest))
@echo $?
$(basename $(cfile)):%:%.c
-g++ -g -o $@ $<
$(basename $(cppfile)):%:%.cpp
-g++ -g -o $@ $<
相关阅读 更多 +