Makefile基本原理


什么是Makefile

GNU make (and other variants of make) do precisely this. make defines a language for describing the relationships between source code, intermediate files, and executables. It also provides features to manage alternate configurations, implement reusable libraries of specifications, and parameterize processes with user-defined macros.
In short, make can be considered the center of the development process by providing a roadmap of an application’s components and how they fit together.

GNU make(以及make的其他变体)正是这样做的。make定义了一种用于描述源代码、中间文件和可执行文件之间的关系的语言。它还提供了管理可选配置、实现可复用规范库和使用用户定义的宏对进程进行参数化的特性。
简而言之,make可以被视为开发过程的中心(通过提供应用程序的组件及其如何组合的路线图)。

编程的机制通常遵循一个相当简单的流程,编辑程序源文件,将源文件编译成可执行形式,并调试结果。下面是一个C源文件转换为可执行文件的过程:

  • 预处理器:将.c 文件转化成 .i 文件,使用的 gcc 命令是:gcc –E,对应于预处理命令 cpp;
  • 编译器:将.c/.h 文件转换成.s 文件,使用的 gcc 命令是:gcc –S,对应于编译命令 cc –S;
  • 汇编器:将.s 文件转化成 .o 文件,使用的 gcc 命令是:gcc –c,对应于汇编命令是 as;
  • 链接器:将.o 文件转化成可执行程序,使用的 gcc 命令是: gcc,对应于链接命令是 ld;
  • 加载器:将可执行程序加载到内存并进行执行,loader 和 ld-linux.so。

make是一个构建工具,通过解析makefile里面的描述,对整个工程项目进行编译构建。

提示:以下是本篇文章正文内容,下面案例可供参考

一、为什么要用Makefile

make主要解决两个问题:

  1. 大量代码的关系维护

大项目中源代码比较多,手工维护、编译时间长而且编译命令复杂,难以记忆及维护

把代码维护命令及编译命令写在makefile文件中,然后再用make工具解析此文件自动执行相应命令,可实现代码的合理编译

  1. 减少重复编译时间

n 在改动其中一个文件的时候,能判断哪些文件被修改过,可以只对该文件进行重新编译,然后重新链接所有的目标文件,节省编译时间

二、Makefile 基本语法

待定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>