[linux]makefile学习

1.文件基本构成

目标文件 分隔符 依赖文件 [;命令]

        [命令]

        [命令]

命令行以一个Tab开始,[;命令] 该命令可选

2.执行

make                              默认makefile为文件名

make -f othername        使用othername作为文件名

make --file=othername   使用othername作为文件名

3.命令行属性

在Tab后加上“+”、“-”,“@”

“+”:本行命令总是执行(文件已经过时)

“-”:如果执行本句是出错,不退出make

“@”:执行本句时不打印

4.伪目标

伪目标不要求生成实际的文件,使用“.PHONY”说明为伪目标文件

5.目标文件

把生成第一个目标文件作为最终生成的文件

6.需要生成多个可执行文件

可以使用伪目标文件的形式,将第一个文件设置为伪目标文件,伪目标包含所需要生成的多个可执行文件

7.实例

(1)需要生成的目标文件test

源文件:test.c含有main()

其他源文件:max.c  max.h  min.c  min.h

test:test.o max.o min.o
    gcc -o test test.o max.o min.o
test.o:test.c max.h min.h
    gcc -c test                           #注意是-c
max.o:max.c max.h
    gcc -c max.c
min.o:min.c min.h
    gcc -c min.c
.PHONY:clean                               #clean是一个为目标,名称可以是其他的
clean:    
    rm *.o test                            #删除目标文件和中间文件,输入make clean

执行make后生成test

执行make clean 删除中间文件以及目标文件

(2)多个目标文件

在上面例子的基础上,加入含有源文件demo.c(有main()函数)

.PHONY all
all:demo test
demo:demo.c
    gcc -o demo demo.c
test:test.o max.o min.o
    gcc -o test test.o max.o min.o
test.o:test.c max.h min.h
    gcc -c test                           #注意是-c
max.o:max.c max.h
    gcc -c max.c
min.o:min.c min.h
    gcc -c min.c
.PHONY:clean                               #clean是一个为目标,名称可以是其他的
clean:    
    rm *.o test demo                       #删除目标文件和中间文件,输入make clean

执行make后生成test以及demo

执行make clean 删除中间文件以及目标文件

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值