Linux下Makefile的编写

本文详细介绍了Linux下Makefile的编写及其在自动化编译中的作用。讲解了GCC编译流程,Makefile的基本构成,包括显式规则、隐式规则、变量定义等,并通过实例展示了如何管理多个源文件的编译。Makefile能够根据文件依赖关系自动编译,提高开发效率,减少不必要的重复编译。

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

在GCC编译中知道

编译流程:
预处理->编译->汇编->链接
每个编译的环节都会产生不同类型的文件,对于C程序:
预处理 ->    .i文件 (-E)
编译    ->    .s文件 (-S)
汇编    ->    .o文件 => .a文件 .so文件 (-c)
        链接    ->     可执行文件

每个环节都有自己的依赖,即若想生成.o文件,那么需要.s、.i、.c文件。

那么 对于庞大的工程项目,比如内核源码中存在成千上万个源文件,那么编译的时候,如何实现自动化编译,即源头文件与头文件或者静、动态库之间找到彼此的依赖关系进行编译,最终生成目标文件。

大多数的Winodws的程序员不需要深入了解自动化编译流程,因为Windows的IDE(Integrated Development Environment)已经做了相关的工作,比如VC,VB等。而Linux下没有这样的IDE,通常需要程序员做用脚本自行书写。

要做一个好的professional程序员,尤其是linux程序员,至少需要懂得设计该脚本 - Makefile。

Makfile是一种纯文本的编译脚本,在其中可以指定需要编译哪些文件,哪些先编译,哪些后编译

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值