Makefile之自动化变量

makefile自动化变量在大型项目的Makefile使用的太普遍了,如果你看不懂自动化变量,开源项目的makefile你是看不下去的。

以往总是看到一些项目的makefile,总是要翻gnu的Makefile文档,很是麻烦,索性一起总结。也算是重新学习一次。

Makefile  [email protected], $^, $< 
[email protected]  表示目标文件
$^  表示所有的依赖文件
$<  表示第一个依赖文件
$?  表示比目标还要新的依赖文件列表

。。。待续

时间: 2024-11-05 13:34:01

Makefile之自动化变量的相关文章

关于Makefile自动化变量

Makefile的自动化变量在管理大量源文件时是十分高效的,它可以避免Makefile管理大型工程时编写过于繁琐. 下面是常用的Makefile自动化变量及其释义. [email protected] 表示目标文件集合,以空格分隔.生成目标时该变量会依次输出目标文件. 示例: OBJ=first second third $(OBJ): @echo [email protected] 其输出为: first second third $^ 表示目标依赖文件集合,以空格分隔.生成目标时该变量会输出

makefile中的自动化变量[email&#160;protected],$%,$

转自:http://www.2cto.com/os/201302/191344.html 自动化变量 模式规则中,规则的目标和依赖文件名代表了一类文件名:规则的命令是对所有这 一类文件重建过程的描述,显然,在命令中不能出现具体的文件名,否则模式规则失去 意义.那么在模式规则的命令行中该如何表示文件,将是本小节的讨论的重点. 假如你需要书写一个将.c 文件编译到.o 文件的模式规则,那么你该如何为gcc 书写 正确的源文件名?当然了,不能使用任何具体的文件名,因为在每一次执行模式规则时 源文件名都

自动化变量

在模式规则中,目标和依赖文件都是一系列的文件,那么我们如何书写一个命令来完成从不同的依赖文件生成相应的目标?因为每次解析模式规则时,都会是不同的目标和依赖文件. 自动化变量就是完成这个功能的.所谓自动化变量就是把模式中所定义的一些列的文件自动地挨个取出,直至所有的符合模式的文件都取完.这种自动化变量只应该出现在规则的命令中,下面是所有自动化变量及其说明: [email protected]: 表示规则中的目标文件集.在模式规则中,如果有多个目标,那么[email protected]就是匹配于目

makefile的中变量

1.定义命令包 如果Makefile中出现一些相同命令序列,可以为这些相同的命令序列定义一个变量.定义这种命令序列的语法以"define"开始,以"endef"结束,如: define run-yacc yacc $(firstword $^) mv y.tab.c [email protected] endef 这里,"run-yacc"是这个命令包的名字,其不要和Makefile中的变量重名.在"define"和"

makefile自动化变量$*

1.如果目标文件的后缀是make所识别的,那么"$*"就是除了后缀的那一部分. makefile文件如下 1 all: foo.o 2 echo final 3 4 foo.o: bar.c 5 echo $* bar.c文件存在,执行make后的结果: echo foo foo echo final final

Makefile之自动变量篇

自动变量假设您编写一个编译‘.c’文件生成‘.o’文件的规则:您怎样编写命令‘CC’,使它能够操作正确的文件名?您当然不能将文件名直接写进命令中,因为每次使用隐含规则操作的文件名都不一样. 您应该使用make的另一个特点,自动变量.这些变量在规则每次执行时都基于目标和依赖产生新值.例如您可以使用变量‘[email protected]’代替目标文件名,变量‘$<’代替依赖文件名. 下面是自动变量列表: [email protected] 规则的目标文件名.如果目标是一个档案成员,则变量‘[ema

makefile(02)_变量

4.变量与赋值 4.1.变量 Makefile中支持程序设计语言中变量的概率,但没有变量类型,只代表文本数据:变量命名规则:变量可以包含字符.数字.下划线,单不能包含":","#", "="," ",变量名大小写敏感.变量的定义和使用: 4.2.赋值 Makefile中有4中变量赋值方式: 4.2.1.简单赋值(:=) 程序设计语言中的通用赋值方式,只针对当前语句有效,等价于C语言中的赋值.建议无特殊要求时使用简单赋值. x

Makefile中的隐式规则

Makefile中的隐式规则 1.隐式规则中的变量 隐式规则中使用的变量分成两种:一种是命令相关的,如"CC":一种是参数相关的,如"CFLAGS". 与命令相关的变量 变量 含义 AR 函数库打开包程序.默认命令是"ar" AS 汇编语言编译程序.默认命令是"as" CC C语言编译程序.默认命令是"cc" CXX C++语言编译程序.默认命令是"g++" CO 从RCS文件中扩展文件

几个简单的Makefile

http://www.blogjava.net/canvas/articles/quick_makefile.html 几个简单适合小程序的Makefile,可直接拷贝使用,自己mark一下,这样长时间不用Makefile也不用去看手册了 0.只有一个文件 # 变量的定义,方便使用CC      = gccCCFLAGS = -O2 -sBIN     = testOBJ     = root_password_tool_win32.o $(BIN) : $(OBJ)    $(CC) $(CC