Makefile的一种写法
来源:互联网 发布:中信淘宝网联名信用卡 编辑:程序博客网 时间:2024/04/29 11:14
适用于目录下有较多源文件的情况
makefile 式列,例如:
CC = gccLD = gccTARGET = testSRCS = $(wildcard *.c)OBJS = $(patsubst %.c, %.o, $(SRCS))all:$(TARGET)$(TARGET):$(OBJS) $(LD) -o $@ $^%o:%c $(CC) -o $@ $^.PHONY:cleanclean: rm -f $(OBJS) $(TARGET)
使用到了GNU Make 里的 ‘wildcard’ 和 ‘patsubst’ 函数, ‘wildcard’ 功能是展开成一列所有符合由其参数描述的文件名,文件间以空格间隔。
SRCS = $(wildcard *.c)
这行会产生一个以 ‘.c’ 结尾的文件的列表,然后存入变量 SRCS 里。
函数 ‘patsubst’(patten substitude)。有三个参数,第一个是一个需要匹配的式样,第二个表示用什么来替换它,第三个是一个需要被处理的由空格分隔的字列。
OBJS = $(patsubst %.c, %.o, $(SRCS))
这行将处理所有在 SRCS中的元素,如果它的结尾是 ‘.c’ ,就用 ‘.o’ 把 ‘.c’取代。
——————-华丽的分割线——————————————-
后缀依赖:
在makefile中使用
.SUFFIXES: .c .o
来说明.c和.o是后缀。
我们可以使用后缀依赖的方式,比如:
CC = gcc.SUFFIXES: .c .o.c.o: $(CC) -c -o $@ $^# helloworld is a binary filehelloworld: test.o echo $@ $(CC) -o $@ $^test.o: test.c
我们定义.c和.o为后缀。并有后缀依赖关系.c.o:。前者为前提,后者为目标。(注意,与一般的依赖关系顺序不同)
上面的test.o和test.c有依赖关系,但没有操作。make会发现该依赖关系符合.c.o的后缀依赖,并执行该后缀依赖后面的操作。
如果项目很大型的时候,后缀依赖非常有用。符合后缀依赖的文件往往有类似的操作,我们可以将这些操作用后缀依赖表示,而避免重复输入。
0 0
- makefile的一种写法
- Makefile的一种写法
- Makefile的一种通用写法
- Makefile之大型工程项目子目录Makefile的一种通用写法
- Makefile之大型工程项目子目录Makefile的一种通用写法
- Makefile之大型工程项目子目录Makefile的一种通用写法
- Makefile之大型工程项目子目录Makefile的一种通用写法
- Makefile之大型工程项目子目录Makefile的一种通用写法
- 子目录下Makefile一种写法
- 编译多个独立程序的Makefile的一种写法
- 规则+工程:一种比较灵巧通用的Makefile写法
- 规则+工程:一种比较灵巧通用的Makefile写法
- 一种不理解的写法
- weakself的一种写法
- weakself的一种写法
- 一种BaseDAO的写法
- weakself的一种写法
- makefile的写法(转)
- Oracle数据库(十)PLSQL
- 使用neo4j存储树形无限级菜单
- swift中UIButton的使用
- MAC下通过virtualbox安装windows的一些重要事项
- iOS调试之 crash log分析
- Makefile的一种写法
- back_up
- TI OS --- 中文版SYS/BIOS之 API的帮助
- 正则表达式30分钟入门教程
- swift中UIView的使用
- 斐波那契数列--java
- telnet 的使用
- 区块链钱包
- struts2 struts.xml文件<constant>标签说明