频道栏目
首页 > 资讯 > 其他 > 正文

Makefile的常用规则总结

18-07-30        来源:[db:作者]  
收藏   我要投稿

1.Makefile中的内部参数

$@  表示目标文件

$^  表示所有的依赖文件

$<  表示第一个依赖文件

$?  表示比目标还要新的依赖文件列表

$+  同样表示所有依赖目标的集合(不去除重复的依赖目标)

2.调用变量

Makefile变量使用()或者()或者{}来调用,如果是shell变量,则需要使用$$来引用。

一种变量替换方法:

src := a.c b.c

obj := $(src:%.o=%.c)

变量赋值方法:

=   基本的赋值

:=  覆盖之前的值

?=    是如果没有被赋值过就赋予等号后面的值(一般可用来设置默认值)

+=   追加变量

这里需要注意=和:=的区别,:=赋值是从它在Makefile中的位置处开始生效的,在它之前的变量还保持原有值,而=会以最后一个赋值为准,并且之前的引用也会被更新。

所以如果定义的变量是在Makfile中会变化的,一定要使用:=。

3.通配符

需要注意:Makefile 中通配符%表示所有的字符,不要和shell语法告混淆,shell 中通配符*表示所有的字符

4.调用shell命令

使用$(shell …)格式来调用shell命令

多个命令连续执行需要以\连接,因为Makefile执行shell是按行执行

SUBDIR=src example

all:

    @for subdir in $(SUBDIR); \

    do\

        echo "building "; \

    done

这里在shell命令前加@符号,主要目的是不让条命令显示在makefile中的编译log中。

以`符号来执行,比如:PATH=`pwd`

5.函数

函数调用方式:

例如:$(wildcard *.c),常用函数如下:

wildcard : 扩展通配符

notdir : 去除路径

patsubst :替换通配符

strip: 去空格

filter: 过滤

filter_out:反过滤

addprefix:加前缀

addsuffix:加后缀

相关TAG标签
上一篇:Android开发中ListView绑定数据知识讲解
下一篇:android开发之百度地图marker点添加,删除,动画等操作实例
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站