读书时间 2011/12/28
2011-12-28 08:01
225 查看
《Linux C Programming》华清
Chap 5, Make
* 参数
-n:模拟执行(或者make --just-print)
-s:执行,但不显示命令(silent? YES!,相当于make --silent)
-v:版本
-p:显示所有var及内部rule
* make文件主要内容
显式规则
隐式规则:推导
变量定义
文件指示
#include
#ifdef
多行命令
注释
* 多目标
例:
bigoutput littleoutput: text.g
generate text.g -$(subst output,,$@) >; $@
等于
bigoutput:text.g
generate text.g -big >; bigoutput
^ what's this ?
littleoutput:text.g
generate text.g -little >; littleoutput
* 自动依赖关系生成
gcc -MM *.c
Q:why not working ?
[root@frank chap5]# gcc -MM hello-make.c
hello-make.o: hello-make.c
[root@frank chap5]# gcc -M hello-make.c
hello-make.c:2:16: 错误:my.h:没有那个文件或目录
[root@frank chap5]# gcc -MM hello-make.c
hello-make.o: hello-make.c
[root@frank chap5]#
Q:How to use it in big project ?
* 忽略合令错误
a) exec:
- cd /home/test #进入/home/test目录,忽略错误
pwd
b) make -i 或 mkae --ignore-errors
c) make -k或 make --keep-going
* 一些比较独特的key words
override ???
define
* 函数
$(<function> <arguments>)
或
${<function> <arguments>}
* 常用函数
subst
findstring
sort
dir/notdir
suffix/basename
join
foreach
$(foreach <var>, <list>, <text>
例:
name := a b c d
files := $(foreach n, $(name), $(n).o)
结果:
$(files) = a.o b.o c.o d.o
ifXXX
call ??? How to use it ???
Chap 5, Make
* 参数
-n:模拟执行(或者make --just-print)
-s:执行,但不显示命令(silent? YES!,相当于make --silent)
-v:版本
-p:显示所有var及内部rule
* make文件主要内容
显式规则
隐式规则:推导
变量定义
文件指示
#include
#ifdef
多行命令
注释
* 多目标
例:
bigoutput littleoutput: text.g
generate text.g -$(subst output,,$@) >; $@
等于
bigoutput:text.g
generate text.g -big >; bigoutput
^ what's this ?
littleoutput:text.g
generate text.g -little >; littleoutput
* 自动依赖关系生成
gcc -MM *.c
Q:why not working ?
[root@frank chap5]# gcc -MM hello-make.c
hello-make.o: hello-make.c
[root@frank chap5]# gcc -M hello-make.c
hello-make.c:2:16: 错误:my.h:没有那个文件或目录
[root@frank chap5]# gcc -MM hello-make.c
hello-make.o: hello-make.c
[root@frank chap5]#
Q:How to use it in big project ?
* 忽略合令错误
a) exec:
- cd /home/test #进入/home/test目录,忽略错误
pwd
b) make -i 或 mkae --ignore-errors
c) make -k或 make --keep-going
* 一些比较独特的key words
override ???
define
* 函数
$(<function> <arguments>)
或
${<function> <arguments>}
* 常用函数
subst
findstring
sort
dir/notdir
suffix/basename
join
foreach
$(foreach <var>, <list>, <text>
例:
name := a b c d
files := $(foreach n, $(name), $(n).o)
结果:
$(files) = a.o b.o c.o d.o
ifXXX
call ??? How to use it ???
相关文章推荐
- 怎样安排时间读书?
- 读书时间 2011/12/24 iPhone/iPad
- 读书时间 2012/01/07
- 读书时间2011/06/25 - 1 iPhone/iPad相关
- 读书时间《深入浅出Android》 2010-12-15
- 读书时间 2011/10/22
- 读书时间 2011/11/17
- 读书时间 2012/01/12 iPhone/iPad
- 看其他人是怎么安排读书时间的
- 读书时间 2011/10/23
- 读书时间 (1) 正在流行中的书
- 读书时间 2012/01/04 Linux C/iuPhone/iPad
- N年时间下来读书的感觉差异
- 读书的时间哪里来?
- 读书时间《JavaScript高级程序设计》五:DOM
- 读书时间 2011/10/07 网络
- 【读书感悟】关于时间管理和学习
- 读书时间 2011/11/16 读书时间
- 读书时间 2012/01/13 iPhone/iPad
- 读书时间《JavaScript高级程序设计》七:表单