答案是:不是! 我简单的认为:自动化变量的应用范围是当前目标,Makefile中可以有很多的目标,但是终极目标只有1个,就是第一个,而其他的组成目标,也是需要编译的,所以我们在使用自动化变量时,它的应用范围只限于当前目标,这一点我们详细举例来说: 假设我们有一个应用工程,包含5个文件,分别为 main.c func1.c func...
参阅使用make更新档案文件。对同一个目标来说,一个文件只能作为一个依赖,不管该文件的文件名在依赖列表中出现多少次。所以,如果在依赖列表中,同一个文件名出现多次,变量‘$^’的值仍然仅包含该文件名一次。 $+ 该变量象‘$^',但是,超过一次列出的依赖将按照它们在makefile文件中出现的次序复制。这主要的用途是...
关于makefile中的自动变量的问题 在makefile中,自动变量是一种特殊的变量,它们在每次执行规则时都会被自动赋值。以下是一些常用的makefile自动变量: $@:表示规则中的目标文件名。例如,如果规则是target: dependency,那么$@就表示target。 $<:表示规则中的第一个依赖文件名。例如,如果规则是target: dependency,那么$...
在makefile中使用带有自动变量的函数 是为了方便地处理文件依赖关系和自动化构建过程。自动变量是makefile中预定义的变量,它们根据当前规则的上下文自动设置其值。 在makefile中,可以使用以下自动变量来引用文件名和目标名: $@:表示目标文件的名称。 $<:表示依赖文件列表中的第一个文件的名称。 $^:表示所有依赖文...
makefile中,带有一些隐式规则,make的自动推导依赖文件就是其中一种。 可以明确的是,make工具是服务于程序编译的,程序的编写自然会有一些标准可循。 比如,在C/C++程序的编写中,我们通常将函数的实现与声明分开放,使用同名不同后缀的文件分别表示实现文件与声明文件,在C中,通常是xxx.c与xxx.h这种对应的关系。
Makefile 有自己的书写格式、关键字、函数。在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。能够使用一行命令来完成“自动化编译”。 自动变量$^代表所有依赖文件,以空格分开,以出现的先后为序。
makefile中系统默认的自动化变量 $@:代表( ) 。A.代表所有的依赖文件B.代表目标C.代表伪目标D.代表第一个依赖文件搜索 题目 makefile中系统默认的自动化变量 $@:代表( ) 。 A.代表所有的依赖文件B.代表目标C.代表伪目标D.代表第一个依赖文件 答案 B 解析 ...
自动变量@和<分别代表什么含义?相关知识点: 试题来源: 解析 Makefile中变量可以使用“=”定义和使用指示符“define”定义。Makefile中的变量可以使用在“目标”,“依赖目标”,“命令”或Makefile的其它部分中。@:目标文件的完整名称;<:第一个依赖文件的名称。
makefile中的自动化变量 【转】 自动化变量 模式规则中,规则的目标和依赖文件名代表了一类文件名;规则的命令是对所有这 一类文件重建过程的描述,显然,在命令中不能出现具体的文件名,否则模式规则失去 意义。那么在模式规则的命令行中该如何表示文件,将是本小节的讨论的重点。
在makefile 的目标中可以使用 % 百分号来匹配文件名, % 可以匹配 任意长度的字符串,比如 %.c 可以匹配以.c结尾的文件 abc%.c 可以匹配以abc开头,以.c结尾的文件. ex: %.o : %.c 4. makefile 中的自动化变量 makefile 有很多自动化变量,自动化变量与模式规则一起可以实现自动化编译 ...