![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Makefile
ZachZheng
活泼阳光,乐观自律
展开
-
Makefile 简介
文章目录为什么需要工程管理器全自动工程管理器与半自动工程管理器Make 工程管理器为什么需要工程管理器在实际的开发过程中,我们会面对如下情况:程序往往是由多个源文件组成,源文件的个数越多,单纯的使用 GCC 调试会越来越复杂;在程序的开发过程中,调试的工作量占了很大一部分。每次调试只会修改部分源文件。而在使用 GCC 命令进行编译的时,GCC 会把没有修改的源文件也进行编译,这样会影响...原创 2019-08-28 16:34:15 · 110 阅读 · 0 评论 -
Make 中的变量
文章目录变量的概念Make 变量的几种形式从外部修改变量的值变量的概念在 Makefile 文件中,常使用 变量 来表示文件名,这样更加方便.定义变量,形式如:变量 = 文件名1 文件名2;使用变量,形式如:$(变量) 等效为:文件名1 文件名2;Make 中变量的使用机制类似于 C/C++ 中 #define 的使用机制;一个小例子:# 定义变量obj = a.o b.o...原创 2019-08-28 16:36:27 · 1532 阅读 · 0 评论 -
Make 中的自动推导
文章目录自动推导伪目标自动推导为了进一步简化 Makefile 的书写,Make 工程管理器提供了自动推导的功能。自动推导默认每个目标文件都有一个与之对应的依赖文件,这样在 Makefile 中就不需要指定与目标文件对应的依赖文件名了。例如:对于目标文件 a.o,系统会默认认为存在依赖文件 a.c;自动推导 默认推导出与目标文件对应的基本编译规则命令。例如,生成目标文件a.o 的规则命...原创 2019-08-28 16:37:32 · 369 阅读 · 0 评论 -
查找文件
文章目录指定文件查找路径指定文件查找路径在一个工程中,程序的源文件都是根据功能的不同存储在不同的子目录中。如果在当前的目标下找不到源文件,Make 管理器如何寻找源文件呢?Makefile 提供了如下两种方式:VPATH 变量:VPATH 是一种特殊的变量,存储着源文件的路径。Make 在当前路径找不到源文件时就会自动到 VPATH 存储的路径中去寻找源文件。VPATH 的使用方法如下:...原创 2019-08-28 16:39:03 · 110 阅读 · 0 评论 -
嵌套执行
文章目录嵌套执行嵌套执行在实际的项目工程中,往往把 Makefile 文件分解为多个子 Makefile 文件,并放置到每一个子目录中,每个子 Makefile 文件负责所在目录下源文件的编译工作。Make 工程管理器会首先读取程序目录下的 Makefile 文件 (总控 Makefile);然后去读取各个子目录下的子 Makefile 文件。这个过程称之为 Make 的嵌套执行。...原创 2019-08-28 16:39:41 · 286 阅读 · 0 评论 -
条件判断
文章目录条件判断条件判断和 C 语言中的条件编译一样,Make 工程管理器也可以在运行时对条件进行判读,然后进行入条件分支继续编译。条件书写格式如下:条件表达式 如果为真,执行文本段endif# 或者条件表达式 如果为真,执行文本段else 如果为假,执行文本段endif条件表达式有以下四种格式:ifeq (参数1, 参数2):参数1 与 参数2...原创 2019-08-28 16:40:46 · 110 阅读 · 0 评论 -
函数
文章目录函数函数Make 工程管理器也有函数机制,和变量一样,函数也用符合 $ 进行标识,其使用格式如下:$(函数名 参数1,参数2,...)其中 函数名 与 参数 之间用空格隔开,参数 与 参数 之间用 , 隔开。常见的内置函数如下:subst:字串替换函数原型: $(subst 参数1, 参数2, 参数3);函数功能: 把 参数3 中的子串 参数1 替换成 参数2;...原创 2019-08-28 16:41:21 · 139 阅读 · 0 评论 -
make 中的 include
文章目录Make 中的 include`include` 的使用场景Make 中的 includeinclude 用于在当前 Makefile 文件中加载其他 Makefile 文件。使用格式如下:include filenames ...例如,假设 .mk 文件包含 a.mk b.mk c.mk,$(bar) 包含 bish bash,然后可以有如下的扩展:include foo *....原创 2019-08-28 16:42:03 · 1168 阅读 · 0 评论