make工程管理器

make工程管理器是一个自动编译管理工具,通过比较文件时间戳减少不必要的编译工作。它依赖于makefile来执行编译任务,简化用户编译指令,提高工作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

make工程管理器是一个“自动编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入makefile文件的内容来执行大量的编译工作。用户只需编写一次简单的编译语句就可以了。它大大的提高了实际的工作效率。

在一个Makefile文件中通常包含如下内容:

•需要由make工具创建的目标体(target),通常是目标文件或可执行文件。
•要创建的目标所依赖的文件。
•创建每个目标体时需要运行的命令。
例子如下:

main:main.o fun.o
        gcc main.o fun.o -o main
main.o: main.c
        gcc main.c -c
fun.o:fun.c
        gcc fun.c -c

make中使用变量:

例子如下:

bianliang1 =main.o fun.o
bianliang2 =main
bianliang3 =main.c
bianliang4 =fun.c
bianliang5 =gcc
bianliang2:$(bianliang1)
        $(bianliang5) $(bianliang1) -o $(bianliang2)
main.o: $(bianliang3)
        $(bianliang5) $(bianliang3) -c
fun.o:$(bianliang4)
        $(bianliang5) $(bianliang4) -c

•makefile文件主要包含了5部分内容:
1.显式规则。说明了如何生成一个或多个目标文件。由makefile文件的创作者指出,包括要生成的文件、文件的依赖文件、生成的命令。
2.隐式规则。由于make有自动推导的功能,所以隐式的规则可以比较粗糙地简略书写makefile文件,这是由make所支持的。
3.变量定义。在makefile文件中要定义一系列的变量,变量一般都是字符串,这与C语言中的宏有些类似。当makefile文件执行时,其中的变量都会扩展到相应的引用位置上。
4.文件指示。其包括3个部分,一个是在一个makefile文件中引用另一个makefile文件;另一个是指根据某些情况指定makefile文件中的有效部分;还有就是定义一个多行的命令。
5.注释。makefile文件中只有行注释,其注释用“#”字符。如果要在makefile文件中使用“#”字符,可以用反斜框进行转义,如:“\#”。 

GNU的make工作时的执行步骤:

1.读入所有的makefile文件。
2.读入被include包括的其他makefile文件。
3.初始化文件中的变量。
4.推导隐式规则,并分析所有规则。
5.为所有的目标文件创建依赖关系链。
6.根据依赖关系,决定哪些目标要重新生成。
7.执行生成命令。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值