正在加载图片...
在 makefile( Makefile中,自顶向下说明各模块之间的依赖关系及实现方 network: network network o: network. c netdefs h subs. o: subs. c net defs. h cc -c subs. c 其中(3)—(6)可以简化为:(隐含的规则) network o subrs, o: netdefs h #make -f makefile 2.2 makefile要点 (1)宏(变量) CC=gCC S(CC)test.c Sa: current target s: all prerequisites (2)后缀规则( suffix rules) S(CC)c S(CFLAGS)-o S@ S< (3)模式规则( pattern rules) .O:% S(CC)-c S(CFLAGS) -o S@ S< (4)通配符* objects: = S(patsubst %.c, %o, s(wi idcard * c)) foo: Sob jects cc -o foo S(ob jects) (5) phony target(哑/假目标):不对应实际的文件,只是一个目标 PHONY. clean#如果这行不加,若当前目录下有一个 clean文件,则 make clean没有动作 clean: 这是 phony targe rm*o temp在 makefile(Makefile)中,自顶向下说明各模块之间的依赖关系及实现方法: network: network.o subrs.o (1) cc –o network network.o subrs.o (2) network.o: network.c netdefs.h (3) cc –c network.c (4) subrs.o: subrs.c netdefs.h (5) cc –c subrs.c (6) 其中(3)—(6)可以简化为:(隐含的规则) network.o subrs.o: netdefs.h #make #make network #make –f makefile 2.2 makefile 要点 (1) 宏(变量) CC=gcc $(CC) test.c $@: current target $<:first prerequisite $^:all prerequisites (2) 后缀规则(suffix rules) .c.o: $(CC) -c $(CFLAGS) -o $@ $< (3) 模式规则(pattern rules) %.o:%.c $(CC) -c $(CFLAGS) -o $@ $< (4) 通配符* objects = *.o objects := $(wildcard *.o) objects := $(patsubst %.c,%.o,$(wildcard *.c)) foo : $(objects) cc -o foo $(objects) (5) phony target(哑/假目标):不对应实际的文件,只是一个目标 .PHONY: clean #如果这行不加,若当前目录下有一个 clean 文件,则 make clean 没有动作 clean: #这是 phony target rm *.o temp
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有