深入学习Makefile:从入门到精通

深入学习Makefile:从入门到精通

【下载地址】跟我一起写Makefile.pdf下载 跟我一起写Makefile.pdf 下载本仓库提供了一个名为“跟我一起写Makefile.pdf”的资源文件下载 【下载地址】跟我一起写Makefile.pdf下载 项目地址: https://gitcode.com/Open-source-documentation-tutorial/24f07

项目介绍

在软件开发过程中,自动化构建工具是提高开发效率的关键。Makefile作为GNU Make的核心配置文件,能够帮助开发者自动化编译、测试和部署流程。为了帮助开发者更好地掌握Makefile的使用,我们推出了“跟我一起写Makefile.pdf”资源文件。这份文件是陈皓大佬的博客最新版,内容详尽,适合所有对Makefile感兴趣的开发者,尤其是那些希望提升自动化构建能力的程序员。

项目技术分析

Makefile是一种用于描述如何构建软件项目的脚本文件。它通过定义一系列规则和依赖关系,指导GNU Make工具如何编译和链接源代码文件。Makefile的核心技术包括:

  • 规则定义:描述目标文件的生成方式及其依赖关系。
  • 变量定义:通过变量简化Makefile的维护和修改。
  • 自动化变量:如$@$<$^等,用于简化规则的编写。
  • 条件判断:通过条件语句实现Makefile的灵活配置。
  • 函数调用:使用内置函数处理字符串、文件路径等操作。

项目及技术应用场景

Makefile广泛应用于各种软件开发项目中,尤其是那些需要频繁编译和构建的项目。以下是一些典型的应用场景:

  • C/C++项目:Makefile是C/C++项目中最常用的构建工具,能够自动化编译和链接源代码。
  • 嵌入式开发:在嵌入式系统开发中,Makefile可以帮助开发者管理复杂的交叉编译过程。
  • 持续集成:在持续集成环境中,Makefile可以与Jenkins、Travis CI等工具结合,实现自动化的构建和测试。
  • 开源项目:许多开源项目使用Makefile来简化项目的构建和发布流程。

项目特点

  • 权威内容:由陈皓大佬亲自编写,内容权威且实用。
  • 详细讲解:涵盖了Makefile的各个方面,从基础到高级技巧,应有尽有。
  • 实战导向:建议结合实际项目进行练习,帮助开发者快速掌握Makefile的使用。
  • 易于获取:只需点击下载按钮,即可获取完整的PDF文件,随时随地学习。

如何获取

  1. 访问本仓库。
  2. 点击“跟我一起写Makefile.pdf”文件。
  3. 在文件详情页,点击“下载”按钮即可获取文件。

希望这份资源能够帮助你更好地理解和使用Makefile,提升你的开发效率!

【下载地址】跟我一起写Makefile.pdf下载 跟我一起写Makefile.pdf 下载本仓库提供了一个名为“跟我一起写Makefile.pdf”的资源文件下载 【下载地址】跟我一起写Makefile.pdf下载 项目地址: https://gitcode.com/Open-source-documentation-tutorial/24f07

第一部分、概述...............................................................................................................................6 第二部分、关于程序的编译和链接...............................................................................................6 第三部分、 Makefile 介绍 ............................................................................................................7 一、 Makefile的规则 ..............................................................................................................7 二、一个示例...........................................................................................................................8 三、 make是如何工作的........................................................................................................9 四、 makefile中使用变量....................................................................................................10 五、让make自动推导..........................................................................................................11 六、另类风格的makefile....................................................................................................12 七、清空目标文件的规则.....................................................................................................13 第四部分、 Makefile 总述 ..........................................................................................................13 一、 Makefile里有什么? ....................................................................................................13 1、显式规则。 ..............................................................................................................14 2、隐晦规则。 ..............................................................................................................14 3、变量的定义。 ..........................................................................................................14 4、文件指示。 ..............................................................................................................14 5、注释。 ......................................................................................................................14 二、 Makefile的文件名 ........................................................................................................15 三、引用其它的Makefile ....................................................................................................15 四、环境变量 MAKEFILES................................................................................................16 五、 make的工作方式..........................................................................................................16 第五部分、书写规则.....................................................................................................................17 一、规则举例.........................................................................................................................17 二、规则的语法.....................................................................................................................17 三、在规则中使用通配符.....................................................................................................18 四、文件搜寻.........................................................................................................................19 五、伪目标.............................................................................................................................20 六、多目标.............................................................................................................................22 七、静态模式.........................................................................................................................22 八、自动生成依赖性.............................................................................................................24 第六部分 书写命令.......................................................................................................................25 一、显示命令.........................................................................................................................26 二、命令执行.........................................................................................................................26 三、命令出错.........................................................................................................................27 四、嵌套执行make..............................................................................................................28 五、定义命令包.....................................................................................................................30 第七部分 使用变量.......................................................................................................................30 一、变量的基础.....................................................................................................................31 二、变量中的变量.................................................................................................................32 三、变量高级用法.................................................................................................................34 四、追加变量值.....................................................................................................................37 五、 override 指示符 ..........................................................................................................37 六、多行变量.........................................................................................................................38 第 2 页共 78 页 2005 年 10 月 14 日整理:祝冬华跟我一起写 Makefile 作者:陈皓 七、环境变量.........................................................................................................................38 八、目标变量.........................................................................................................................39 九、模式变量.........................................................................................................................40 第八部分 使用条件判断...............................................................................................................40 一、示例.................................................................................................................................40 二、语法.................................................................................................................................42 第九部分 使用函数.......................................................................................................................43 一、函数的调用语法.............................................................................................................44 二、字符串处理函数.............................................................................................................44 1、 subst .......................................................................................................................44 2、 patsubst.................................................................................................................45 3、 strip .........................................................................................................................45 4、 findstring ...............................................................................................................46 5、 filter.........................................................................................................................46 6、 filter-out.................................................................................................................46 7、 sort ..........................................................................................................................47 8、 word ........................................................................................................................47 9、 wordlist ..................................................................................................................47 10、 words....................................................................................................................47 11、 firstword..............................................................................................................48 12、字符串函数实例....................................................................................................48 三、文件名操作函数.............................................................................................................48 1、 dir.............................................................................................................................48 2、 notdir ......................................................................................................................48 3、 suffix .......................................................................................................................49 4、 basename..............................................................................................................49 5、 addsuffix................................................................................................................49 6、 addprefix ...............................................................................................................49 7、 join...........................................................................................................................50 四、 foreach 函数................................................................................................................50 五、 if 函数 ............................................................................................................................50 六、 call函数..........................................................................................................................51 七、 origin函数 .....................................................................................................................51 “undefined” .................................................................................................................52 “default”.......................................................................................................................52 “file”...............................................................................................................................52 “command line”.........................................................................................................52 “override” ....................................................................................................................52 “automatic”.................................................................................................................52 八、 shell函数 .......................................................................................................................53 九、控制make的函数..........................................................................................................53 1、 error ........................................................................................................................53 2、 warning ..................................................................................................................54 第十部分 make 的运行..............................................................................................................54 第 3 页共 78 页 2005 年 10 月 14 日整理:祝冬华跟我一起写 Makefile 作者:陈皓 一、 make的退出码..............................................................................................................54 二、指定Makefile ................................................................................................................54 三、指定目标.........................................................................................................................55 “all” ................................................................................................................................56 “clean” ..........................................................................................................................56 “install” .........................................................................................................................56 “print” ...........................................................................................................................56 “tar” ...............................................................................................................................56 “dist”..............................................................................................................................56 “TAGS” ..........................................................................................................................56 “check”和“test” ..........................................................................................................56 四、检查规则.........................................................................................................................57 五、 make的参数..................................................................................................................57 第十一部分 隐含规则...................................................................................................................61 一、使用隐含规则.................................................................................................................61 二、隐含规则一览.................................................................................................................62 1、编译C程序的隐含规则 ...........................................................................................63 2、编译C++程序的隐含规则.....................................................................................63 3、编译Pascal程序的隐含规则..................................................................................63 4、编译Fortran/Ratfor程序的隐含规则..................................................................63 5、预处理Fortran/Ratfor程序的隐含规则..............................................................63 6、编译Modula-2 程序的隐含规则...........................................................................63 7、汇编和汇编预处理的隐含规则 ..............................................................................64 8、链接Object文件的隐含规则 .................................................................................64 9、 Yacc C程序时的隐含规则 .....................................................................................64 10、 Lex C程序时的隐含规则.....................................................................................64 11、 Lex Ratfor程序时的隐含规则 ...........................................................................65 12、从C程序、 Yacc文件或Lex文件创建Lint库的隐含规则 ..................................65 三、隐含规则使用的变量.....................................................................................................65 1、关于命令的变量。 ..................................................................................................65 2、关于命令参数的变量 ..............................................................................................66 四、隐含规则链.....................................................................................................................67 五、定义模式规则.................................................................................................................68 1、模式规则介绍 ..........................................................................................................68 2、模式规则示例 ..........................................................................................................69 3、自动化变量 ..............................................................................................................70 4、模式的匹配 ..............................................................................................................72 5、重载内建隐含规则 ..................................................................................................72 六、老式风格的"后缀规则" .................................................................................................73 七、隐含规则搜索算法.........................................................................................................74 第十二部分 使用make更新函数库文件....................................................................................75 一、函数库文件的成员.........................................................................................................75 二、函数库成员的隐含规则.................................................................................................75 三、函数库文件的后缀规则.................................................................................................76 第 4 页共 78 页 2005 年 10 月 14 日整理:祝冬华跟我一起写 Makefile 作者:陈皓 四、注意事项.........................................................................................................................76 第十三部分 后序...........................................................................................................................77
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

盛郁舸Ferris

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

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

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

打赏作者

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

抵扣说明:

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

余额充值