Makefile的编写快速入门

1Makefile中的自动化变量


$*        不包含扩展名的目标文件名称

$@            目标的完整名称

$%       如果目标是归档成员,则该变量表示目标的归档成员的名称

$<       第一个倚赖

$^      所有的倚赖文件,去重

$+       所有的倚赖文件,不去重

$?          所有的倚赖文件,以空格隔开。这些倚赖文件的修改日期比目标的创建日期晚

 
   

2make 命令的查找顺序是,在同一个文件夹下

GUNmakefile————>makefile——————>Makefile

现在一般使用Makefile

3Makefile中的赋值表达式


=  有递推功能,可往下寻找

:=不可往下寻找

+=直接在原有的字符串后面补充

 

  

4、两个常用函数:

SRCE = $(wildcard *.c)          列出当前目录下所有的.c文件

OBJS = $(patsubst %.c,%.o,$(SRCE))  把任意的.c文件替换为.o文件

其中%通配符一般用在.c.o文件的的转换部分

实例如下:

 

当前文件的结构

0414

    make

        main.c

        foo1.c

        foo2.c

        foo3.c

        Makefile

        inc

            head.h

5for  ifeq  ifneq  的用法   ,先来示例:

Makefile书写规则规定:每个makefile命令必须以Tab键缩进,所以:

1)、使用一般指令这些语句的时候不要通过Tab键缩进,

2)、要么就写在同一行,通过分号隔开。

6Makefile指令前加"-"表示出现错误,不中断,继续执行下面的语句

   Makefile指令前加"@"表示隐藏命令提示

7、一般安装指令和卸载指令是删除一些文件,所以也通过Makefile来编写规则

    install:

        cp hello  /user

    uninstall:

        rm /user/hello

8、嵌套Makefile,具体看例子



 

1       $(MAKE) -C 路径

等价于  make  -C  路径

意思就是先打开路径,然后执行make指令,这样是便于维护。

2export CC OBJS  BIN OBJS_DIR

例如上述那个例子,我们通过export命令,将顶层Makefile所定义的变量传递到下级目录的Makefile下,但是不覆盖下层Makefile所定义的变量,除非指定了 -e

顶层的Makefile叫做总控Makefile

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值