《GNU make项目管理》笔记
文章平均质量分 84
TODD911
热爱计算机
展开
-
《GNU make项目管理》笔记--规则(2)
有如下的源代码树:根目录|---makefile|----|include|| |___myutil.h|___|src| |----myutil.c |__main.c各文件内容如下:main.c:#include #include "myutil.h"int main(void) {原创 2015-01-22 22:52:06 · 1299 阅读 · 0 评论 -
《GNU make项目管理》笔记--规则(3)
1.管理程序库程序库(archive library)是一个特殊的文件,该文件内含其他被称为成员的文件。程序库可用来将相关的目标文件聚集成较容易操作的单元,例如,C的标准程序库lib.a就包含了许多低级的C函数。因为程序库如此常见,所以make对它们的创建、维护以及引用提供了特别的支持。程序库的建立及修改可通过ar程序来进行。下面我们看一个例子,程序包结构如下:根目录原创 2015-02-03 22:55:46 · 1362 阅读 · 0 评论 -
《GNU make项目管理》笔记--变量与宏(1)
make包含两种语言。第一种语言用来描述工作与必要条件所组成的依存图。第二种语言是宏语言,用来进行文字替换。像C预处理器,m4以及宏汇编器。一个变量名称几乎可以由任何字符自称。包括大部分的标点符号,即使空格也可以使用,但应该避免这么做。事实上只有:、#和=等字符不允许使用在变量名称中。变量名称是区分大小写的。要取得某个变量的值,请使用$()括住该变量的名称,有一个特例:变量名称若为原创 2015-02-04 22:52:48 · 1719 阅读 · 0 评论 -
《GNU make项目管理》笔记--规则(1)
1.通配符当你有一长串文件要制定时,为了简化此过程,make提供了通配符(wildcard),此功能也被称为文件名模式匹配。make的通配符如同Bourne shell的~、*、?、[...]和[^...]。举例来说,*.*会被扩展成文件名中包含点号的所有文件,一个问号代表任何单一字符,而[...]代表一个字符集。若要取得字符集的补集,则可以使用[^...]。此外,“~”符号可以用原创 2015-01-20 23:12:38 · 1745 阅读 · 0 评论 -
《GNU make项目管理》笔记--简单的makefile
make定义了一种语言,可用来描述源文件、中间文件以及可执行文件之间的关系。它还提供了一些功能,可用来管理各种候选配置、实现可重用程序库的细节以及让用户自定义宏将过程参数化。简言之,make常被视为开发过程的核心,因为它为应用程序的组件以及这些组件的搭配方式提供了一个可依循的准则。make的主要价值在于它由能力完成编译应用程序时所需要的一系列复杂步骤,以及当有可能缩短“编辑-编译-调试原创 2015-01-15 21:56:05 · 3332 阅读 · 0 评论 -
《GNU make项目管理》笔记--变量与宏(2)
1.何时扩展变量当make在处理递归变量或define指令的时候,会将变量里的每一行或宏的主体存储起来,包括换行符号,但不会予以扩展。宏定义里的最后一个换行符号并不会被存储称宏的一部分,否则,宏被扩展时make会读进一个额外的换行符号。当宏被扩展时,make会立即扫描被扩展的文本中是否存在宏或变量的引用,如果存在就予以扩展,如此递归进行下去。如果宏是在命令脚本的语境中被扩展的,则宏原创 2015-03-13 13:46:51 · 1673 阅读 · 0 评论