2010-7-16 Linux 的 Makefile 笔记

Makefile

1、在Linux中使用make没了来编译程序,特别是大程序;而make命令所执行的动作依赖于Makefile文件。

2、

hello:hello.c

            gcc  -o hello hello.c

新建一个Makefile,将上面的两行代码放到Makefile文件中;(注意:第二行必须以Tab键缩进开始,不能以空格

3、make命令根据文件更新的时间来决定哪些文件需要重新编译,这使得可以避免编译已经编译过的、没有变化的程序,可以大大提高编译效率。

4、Makefile样式:

 

目标(target):依赖

<tab>命令(command)

目标是要生成的文件的名称

依赖是用来产生目标的材料(如源文件)

命令式生成目标时执行的动作(每个命令前必须是一个Tab字符

 

5、Makefile文件里的变量和赋值

有两种变量:延时变量(真正使用时这个变量才确定  =    , ?=)

                  立即变量(定义时它的值就已经确定了,         :=)

变量的引用:

src :=$(shell ls *.c)

objs:=$(patsubst %.c ,%.o,$(src))

$(src)为变量的利用;

$(函数名 参数名)Makefile函数调用的格式:

                    patsubst  %.c ,%.o,$(src)) 为函数的引用;

 

$@表示规则的目标文件名

$^表示所有依赖的名字

$<表示第一个依赖的文件名

 

下面是一个完整的Makefile文件:

 

01   src :=$(shell ls *.c)

02   objs:=$(patsubst %.c ,%.o,$(src))

03

04   test:$(objs)

05              gcc -o  $@   $^

06  

07   %.o:%.c

08                 gcc -c -o  $@  $<

09

10   clean:

11               rm -f  test  *.o

       

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值