Chinaunix首页 | 论坛 | 博客
  • 博客访问: 186617
  • 博文数量: 40
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 418
  • 用 户 组: 普通用户
  • 注册时间: 2013-06-26 22:37
文章存档

2015年(4)

2014年(27)

2013年(9)

我的朋友

分类: LINUX

2014-11-29 22:03:22

阅读《Linux程序设计》第四版,第九章中介绍了Makefile,其中特殊字符记录如下:

1. $?:  当前目标所依赖的文件列表中比当前目标文件还要新的文件;
2. $@: 当前目标的名字;
3. $<: 当前以来文件的名字;
4. $*: 不包括后缀名的当前依赖文件的名字;
5. -: 告诉make命令忽略所有错误;
6. @: 告诉make在执行某条命令前不要将该命令显示在标准输出上。


其中: $@, $<,$^称为自动变量。$@表示规则的目标文件名,$^表示所依赖的所有名字,名字之间用空格隔开,$<是地一个依赖的文件名字。

举例如下:

目录下有1.c 2.c文件。那么Makefile可以这么些:

点击(此处)折叠或打开

  1. FILE:Makefile

  2. src := $(shell ls *.c)
  3. objs := $(patsubst %.c,%.o, $(src) ) #该行意思是所有的*.c替换为*.o文件

  4. test :$(objs)
  5.            gcc -o $@ $^
  6. %.o : %.c
  7.            gcc -o $@ $<

  8. clean:
  9.           rm -rf *.o test


阅读(2011) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~