C/C++ - makefile(规则、伪目标、变量、内置函数)

本文详细介绍了Makefile的规则、伪目标、变量和内置函数的使用,包括单文件和多文件的编译示例,以及如何通过变量简化Makefile的维护。此外,还讲解了Makefile中的隐含规则、模式规则和命令行选项,帮助开发者高效管理大型C/C++项目。
摘要由CSDN通过智能技术生成

视频:https://www.bilibili.com/video/BV1dW411n7vk?from=search&seid=13869936161616988114

可以试想一下,有一个上百个文件的代码构成的项目,如果其中只有一个或几个文件进行修改,需要从头到尾将每一个文件都重新编译是一个比较繁琐的过程。
为此,引入了Make工程管理器的概念,工程管理器指管理较多文件,自动根据文件时间自动发现更新过的文件而减少编译的工作量,同时通过读入Makefile文件来执行大量的编译工作。

makefile规则

规则:用于说明如何生成一个或多个目标文件

makefile文件里面可以有很多规则,但是第一个规则是最终生成的文件规则。

规则格式:

target: dependency_files // 目标项:依赖项
<tab>command	// 必须以tab开头,command编译命令

规则就是为了生成某一个文件的。
目标项:这个就是你要生成的文件名
依赖项:要生成目标项需要的文件
编译命令:如果有依赖项生成目标项;必须以TAB开头

在mekefile中,规则的顺序是很重要的。因为,Makefile中只应该有一个最终目标,其他的目标都是被这个目标所连带出来的,所以一定要让make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标

归结:

  1. 目标文件不存在,执行命令
  2. 文件已经更新了,执行命令
  3. Makefile的第一条规则为最终的目标。

例1:单文件

#include <stdio.h>

int main(int argc, int **argv)
{
   
    printf("hello world\n");
    return 0;
}

在这里插入图片描述
写成makefile如下

  1. 创建名称为makefile或者Makefile的文档
  2. 在文档中输入相应的内容
    test:test.c
    	gcc -o test test.c
    
  3. 运行makefile文件
    命令行输入
    make
    
    在这里插入图片描述

    如果马上再执行make命令
    在这里插入图片描述
    这是因为,make命令会对比源文件的修改时间,如果早于目标文件,说明源文件没有修改,就不会帮你再次编译了。

例2:多文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骆言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值