Linux Makefile文件详解(2)
Linux
%通配符来表示一类文件,例如%.o: %.c。Makefile 是一个非常强大的工具,可以用于管理复杂的项目结构。以上示例是一个简单的入门级别的 Makefile,实际项目中可能会包含更多的配置和规则。
5. Makefile 规则
Makefile 通常包含规则(rules),规则描述了如何生成一个或多个目标文件。每个规则的基本格式如下:
target: dependencies
command
target:目标文件的名字,可以是一个可执行文件、一个中间文件、或者一个标签。dependencies:目标文件依赖的文件列表,即生成目标文件所需要的文件。command:生成目标文件的命令,用于描述如何从依赖文件生成目标文件。
以下是一个简单的示例:
main: main.o utils.o
gcc -o main main.o utils.o
main.o: main.c
gcc -c main.c
utils.o: utils.c
gcc -c utils.c
在这个例子中,main是目标文件,依赖于main.o和utils.o。生成main文件的命令是gcc -o main main.o utils.o。类似地,main.o依赖于main.c,utils.o依赖于utils.c。
6. 自动变量
Makefile 中有一些特殊的变量,称为自动变量,它们在规则的命令中使用,表示一些特定的信息。一些常用的自动变量有:
$@:表示目标文件的名字。$<:表示规则中的第一个依赖文件的名字。$^:表示规则中所有的依赖文件的名字,用空格分隔。
以下是使用自动变量的例子:
main: main.o utils.o
gcc -o $@ $^
这个规则等价于之前的规则,使用了自动变量来表示目标文件和所有依赖文件。
7. 通用规则
如果有多个类似的目标文件,可以使用通用规则。通用规则使用通配符 % 来匹配文件名的一部分。
%.o: %.c
gcc -c $<
这个规则表示,对于任何.o文件,其依赖于同名的.c文件,生成规则是gcc -c $<。
8. 变量
Makefile 中可以定义变量,用于存储字符串、文件名、编译选项等信息。变量的定义格式如下:
VAR_NAME = value
使用变量的示例:
CC = gcc
CFLAGS = -Wall -O2
main: main.o utils.o
$(CC) -o $@ $^ $(CFLAGS)
在这个例子中,CC和CFLAGS都是变量,分别存储了编译器和编译选项。在规则的命令中使用时,用
相关阅读
-
windows无法访问指定设备路径或文件 Windows无法访问指定设备路径或文件
小编为大家讲一讲windows无法访问指定设备路径或文件的教程内容。当我们在使用Windows系统电脑时,有可能会遇到“windows无法访问指定设备路径或文件”的问题,很多小白用户不知道该如何解
-
任务管理器快捷按键 任务管理器快捷键大全
今天小编介绍任务管理器快捷键大全的IT知识,关于任务管理器快捷按键 任务管理器快捷键大全,一起来看看吧! 如果我们电脑太过卡顿,或者画面卡主以后,我们通常都会启用任务管理器来
-
风林火山win7旗舰版系统在哪下载 风林火山ghost win7旗舰版
今天为大家介绍风林火山win7旗舰版系统在哪下载方面的知识,关于风林火山win7旗舰版系统在哪下载 风林火山ghost win7旗舰版,接下来IT袋小编就来介绍。 我们在使用win7操作系统的时候,有的情
-
win11办公软件位置介绍 windows11办公软件在哪
今日重点为您介绍win11办公软件位置介绍的内容,关于win11办公软件位置介绍 windows11办公软件在哪,请看下面详细的介绍。 不少的IT袋网友都想在win11系统中使用办公软件,但是又不知道win11的


