摘要: 上一篇中我们初步生成了.dep依赖文件,但是,实际工程中,源文件成千上万,生成的依赖文件需要用文件夹管理起来,也就是在makefile中将.dep文件组织到指定目录。 我们可以通过以下思路来组织.dep文件,当include发现.dep文件不存在时: 1、通过规则和命令创建deps文件夹。 2、将所 阅读全文
posted @ 2018-02-06 17:19 周伯通789 阅读(521) 评论(0) 推荐(0) 编辑
摘要: 为了完成自动生成依赖关系的目的,我们还需要引入几个知识点,下面首先引入makefile中的关键字include。 include关键字: makefile中的include关键字类似于C语言中的include关键字,将其它文件的内容原封不动的搬到当前文件中。具体用法如下所示: *.mk代表当前目录下 阅读全文
posted @ 2018-02-06 13:49 周伯通789 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 前面我们涉及到的makefile,都只是考虑到目标文件(.o)依赖于源文件(.c)。然而实际情况却并没有这么简单,我们的源文件一般都是会包含一些自己编写的头文件的,这样的话%.o : %.c这种模式规则的写法是不是就有问题了呢?当源文件不改变而头文件改变时,make解释器是无法根据文件的新旧关系来决 阅读全文
posted @ 2018-02-06 11:17 周伯通789 阅读(624) 评论(0) 推荐(0) 编辑
摘要: 在实际的工程项目中,生成的目标文件、最终可执行文件以及其它中间文件都需要进行管理,而不是生成在同一个目录下,本次,我们给出下面的实战需求: 1、自动生成target文件夹存放可执行文件。 2、自动生成objs文件夹存放编译生成的目标文件(*.o)。 3、支持调试版本的编译选项。 4、考虑代码的扩展性 阅读全文
posted @ 2018-02-05 20:43 周伯通789 阅读(264) 评论(0) 推荐(0) 编辑
摘要: makefile中支持函数的概念,make解释器提供了一系列的函数供makefile调用,类似于函数库。在makefile中支持自定义函数的实现,并调用执行。通过define关键字实现自定义函数。 自定义函数的基本语法如下: 自定义函数是一个多行变量,无法直接调用,只能在规则中进行调用。自定义函数是 阅读全文
posted @ 2018-02-05 18:16 周伯通789 阅读(229) 评论(0) 推荐(0) 编辑
摘要: makefile中支持条件判断语句,具体如下: 注意事项:条件判断语句只能用于控制make实际执行的语句;但是,不能控制规则中命令的执行过程。 条件判断语句的常用语法如下,一般只是用其中的常用形式: 具体的条件判断关键字如下: 编写makefile文件,并执行make,结果如下所示: ifeq、el 阅读全文
posted @ 2018-02-05 14:00 周伯通789 阅读(451) 评论(0) 推荐(0) 编辑
摘要: 环境变量在任何系统都会存在,它就是系统中预定义的一些键值对,在makefile中可以直接使用系统环境变量的值,但是makefile中若定义了同名的全局变量,那么环境变量将被覆盖,运行make时若指定-e选项,则优先使用环境变量。在makefile中使用环境变量有以下优劣: 如果在多个makefile 阅读全文
posted @ 2018-02-04 21:18 周伯通789 阅读(262) 评论(0) 推荐(0) 编辑
摘要: 上一节中我们分享了变量的定义与使用,这一节我们来研究一下变量值得替换,具体语法格式如下所示: 执行make,上图的输出结果如下: 在上图中的变量值替换中a是var变量中每个变量的后缀,make解释器去var变量中搜索匹配每一个子变量,遇到后缀为a的子变量即将这个后缀a替换成b,变量值的替换这种语法只 阅读全文
posted @ 2018-02-04 18:25 周伯通789 阅读(322) 评论(0) 推荐(0) 编辑
摘要: makefile是一种程序设计语言,因此,它也支持程序设计语言中变量的概念,但是makefile中的变量是没有类型的,makefile中的变量只代表文本数据(字符串),makefile中的变量命名规则和C语言中类似,具体如下: 1、变量名可以包含字符、数字、下划线。 2、不能包含":"、"#"、"= 阅读全文
posted @ 2018-02-04 16:21 周伯通789 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 在makefile中存在一些预定义的变量,它们大体可以分为两类,一类是自动变量,另一类是特殊变量。 自动变量的意义分别如下: 编写如下的makefile程序对自动变量进行测试: 执行make命令,输出结果如下: 小知识: make中的一些特殊变量如下: 编写makefile进行测试: 执行make 阅读全文
posted @ 2018-02-04 16:21 周伯通789 阅读(508) 评论(0) 推荐(0) 编辑