Chinaunix首页 | 论坛 | 博客
  • 博客访问: 226385
  • 博文数量: 63
  • 博客积分: 2465
  • 博客等级: 大尉
  • 技术积分: 471
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-08 17:25
文章分类

全部博文(63)

文章存档

2011年(5)

2010年(41)

2009年(17)

我的朋友

分类: LINUX

2009-04-06 12:09:04

1. 如何在makefile中使用shell命令
   LS=$(shell ls);
 
2. makefile中不同的文件夹之间用冒号“:”分隔。
 
3. 伪目标:
   all:……
   .PHONY all   
   在PHONY前面加了一个小减号的意思就是,也许某些文件出现问题,但不要管,继续做后面的事。。“伪目标”并不是一个文件,只是一个标签,由于“伪目标”不是文件,所以make无法生成它的依赖关系和决定 它是否要执行。
 
4. 自动化变量
   a. @”表示目标的集合,就像一个数组,“$@”依次取出目标,并执于命令。
   b. $<: "$<"表示依赖的目标集,不如.c(相对于.o文件) .0(相对于最终的目标文件)文件
   c.
 
5. 过滤
   使用filter可以按一定规则选取相应的文件。
    比如:$(filter %.o,$(files))表示调用Makefile的filter函数,过滤“$filter”集,只要其中模式为“%.o”的内容。
 
6. 自动生成依赖性
   cc -M main.c编译时将自动添加main.c的依赖.h文件。
 
7. 替换
   “$(sources:.c=.d)”中的“.c=.d”的意思是做一个替换,把变量$(sources)所有[.c]的字串都替换成 [.d]
 
 
8. 命令执行

   当依赖目标新于目标时,也就是当规则的目标需要被更新时,make会一条一条的执行其后的命令。需要注意的是,如果要让上一条命令的结果应用在下一条命令时,应该使用分号分隔这两条命令。
 
9. 命令出错
   在mkaefile中执行命令前加短横线“-”,标记为不管成功以否都认为是成功的。
   在执行make时添加 -i的选项,忽略错误
   在执行make时添加 -k的选项,终止当前操作,继续执行后续操作。
 
10. 嵌套执行make
   subsystem:
            cd subdir && $(MAKE)
   其等价于:
    subsystem:
            $(MAKE) -C subdir
 
11. 变量的使用
   y = $(x) bar
   x = foo
   如上,则y = foo bar;
   y := $(x) bar
   x := foo 
   如上,则y = bar;
 
   FOO ?= bar
   如果FOO没有被定义过,那么变量FOO的值就是“bar”,如果FOO先前被定义过,那么这条语将什么也不做
 
12.
 
 
阅读(857) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~