Linux之make

make

2.1  make

大型程序维护工具

Makefile或 makefile: 告诉make维护一个大型程序,该做什么。Makefile说明了组成程序的各模块间的相互关系及更新模块时必须进行的动作,make按照这些说明自动地维护这些模块。

 

 

 

在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.2makefile要点

(1)  宏(变量)

CC=gcc

$(CC) test.c

$@: current target

$<:firstprerequisite

$^:allprerequisites

(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)  phonytarget(哑/假目标):不对应实际的文件,只是一个目标

.PHONY:clean  #如果这行不加,若当前目录下有一个clean文件,则make clean 没有动作

clean:         #这是phonytarget

     rm *.o temp

 

(6)  includefilename:嵌套makefile,暂停当前makefile,转而读取指定的filename

-include filename:忽略找不到filename时的错误

(7)  控制语句:ifeq, ifneq

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值