Makefile的写法
2008-01-11 22:39
330 查看
Makefile的规则:
target(目标):prerequisites(依赖)
command(命令)
...
1. Common options:
-k: keep going when an error is found
-n: 只是显示命令,但不会执行命令
-f <filename>: 指定makefile文件
2. phony target (伪目标):
.PHONY clean
clean:
-rm *
3. 变量:
变量引用: $() 或 ${}
注:要使用真实的“$”字符,那么你需要用“$$”来表示
自动化变量:
$?:所有比目标新的依赖目标的集合。
$@: 表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,"$@"就是匹配于目标中模式定义的集合。
$<:依赖目标中的第一个目标名字。如果依赖目标是以模式(即"%")定义的,那么"$<"将是符合模式的一系列的文件集。注意,其是一个一个取出来的。
$*:无后缀名的依赖
$^:所有的依赖目标的集合。
4. 特殊字符:
-: 忽略当前执行命令的任何错误
@: 执行命令而不打印命令 (echo)
5. 后缀和模式:
.SUFFIXES:.c #自定义后缀
.c.o #老式风格的"后缀规则"
$(CC) $(CFLAGS) -I$(INCLUDE) -c $<
等价于:
%o:%.c #模式
$(CC) $(CFLAGS) -I$(INCLUDE) -c $<
引: [精华] 跟我一起写 Makefile http://www.chinaunix.net/jh/23/408225.html
target(目标):prerequisites(依赖)
command(命令)
...
1. Common options:
-k: keep going when an error is found
-n: 只是显示命令,但不会执行命令
-f <filename>: 指定makefile文件
2. phony target (伪目标):
.PHONY clean
clean:
-rm *
3. 变量:
变量引用: $() 或 ${}
注:要使用真实的“$”字符,那么你需要用“$$”来表示
自动化变量:
$?:所有比目标新的依赖目标的集合。
$@: 表示规则中的目标文件集。在模式规则中,如果有多个目标,那么,"$@"就是匹配于目标中模式定义的集合。
$<:依赖目标中的第一个目标名字。如果依赖目标是以模式(即"%")定义的,那么"$<"将是符合模式的一系列的文件集。注意,其是一个一个取出来的。
$*:无后缀名的依赖
$^:所有的依赖目标的集合。
4. 特殊字符:
-: 忽略当前执行命令的任何错误
@: 执行命令而不打印命令 (echo)
5. 后缀和模式:
.SUFFIXES:.c #自定义后缀
.c.o #老式风格的"后缀规则"
$(CC) $(CFLAGS) -I$(INCLUDE) -c $<
等价于:
%o:%.c #模式
$(CC) $(CFLAGS) -I$(INCLUDE) -c $<
引: [精华] 跟我一起写 Makefile http://www.chinaunix.net/jh/23/408225.html
相关文章推荐
- makefile的语法及写法
- 多文件目录Makefile的写法
- Makefile 常用写法
- android编译系统的makefile文件Android.mk写法如下
- Android 编译系统的makefile 文件写法
- 多个文件目录下Makefile的写法
- “makefile”写法详解,一步一步写一个实用的makefile,详解 sed 's,$∗\.o[ :]*,\1.o $@ : ,g' < $@.
- linux下通用Makefile写法
- [ZZ]make命令与makefile文件的写法
- makefile的语法及写法(一)
- makefile的语法及写法(二)
- 软件工程通用makefile写法学习总结
- MakeFile的写法
- makefile的语法及写法(二)
- makefile的简单写法
- Makefile的写法
- Makefile之Linux内核模块的Makefile写法分析
- 多个文件目录下Makefile的写法
- 常见的makefile写法
- android编译系统的makefile文件Android.mk写法