Makefile
make 是一个命令工具,是一个解释 makefile 中指令的命令工具,一般来说,大多数的 IDE 都有这个命令,比如:Delphi 的 make,Visual C++的 nmake,
Linux 下 GNU 的 make。可见,makefile 都成为了一种在工程方面的编译方法。
其木王·王子
Whatever,Smile to life!
不管怎样,笑着生活
展开
-
1.循环函数-foreach
foreach 这个函数是用来做循环用的,Makefile中的 foreach 函数几乎是仿照于 Unix 标准 Shell(/bin/sh)中的 for 语句,或是 C-Shell(/bin/csh)中的 foreach 语句而构建的。原创 2022-06-05 23:18:13 · 3945 阅读 · 0 评论 -
2.过滤函数-filter/filter-out
名称:过滤函数——filter2 filter-out2.1 语法名称:反过滤函数——filter-out。原创 2022-06-05 23:27:03 · 2166 阅读 · 0 评论 -
3.模式字符串替换函数-patsubst
名称:模式字符串替换函数——patsubst。原创 2022-06-05 23:34:41 · 401 阅读 · 0 评论 -
4.判断文件是否存在函数-wildcard
判断文件是否存在,取出其中存在的文件。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。...原创 2022-06-05 23:42:02 · 621 阅读 · 0 评论 -
5.读取指定路径名-dirname
dirname 命令读取指定路径名删除最后一个“/”(斜杠)及其后面的字符,保留其他部分,并写结果到标准输出。如果最后一个“/”后无字符,dirname 命令使用倒数第二个“/”,并忽略其后的所有字符。...原创 2022-06-09 16:27:48 · 468 阅读 · 0 评论 -
6.如何自动生成头文件依赖 -M
我们在编译时,希望改了某个c文件,就只编译那一个c文件,同时,改了一个头文件时,也希望包含这个头文件的c文件也编译。对于前者,make默认就是这样做的,而对于后者,却需要我们配合gcc的一些选项来实现这个目的。要想实现头文件改动,包含了此头文件的c文件也编译,需要在Makefile中体现出c文件与头文件的依赖关系,...原创 2022-06-10 07:48:18 · 853 阅读 · 0 评论 -
7.去空格函数-strip
函数名称:去空格函数—strip。原创 2022-06-19 15:18:19 · 825 阅读 · 0 评论 -
8.取目录函数/取文件函数 -dir / -notdir
名称:取目录函数——dir原创 2022-06-19 15:52:24 · 355 阅读 · 0 评论 -
9.后缀、前缀函数-suffix basename addsuffix addprefix
名称:取后缀函数——suffix。名称:取前缀函数——basename。名称:加后缀函数——addsuffix。名称:加前缀函数——addprefix。原创 2022-06-19 16:18:15 · 902 阅读 · 0 评论 -
10.书写规则-文件搜寻
另一个设置文件搜索路径的方法是使用make的“vpath”关键字(注意,它是全小写的),这不是变量,这是一个make的关键字,这和上面提到的那个VPATH变量很类似,但是它更为灵活。在一些大的工程中,有大量的源文件,我们通常的做法是把这许多的源文件分类,并存放在不同的目录中。目录由“冒号”分隔。而上面的语句则表示“.c”结尾的文件,先在“foo”目录,然后是“bar”目录,最后才是“blish”目录。其表示“.c”结尾的文件,先在“foo”目录,然后是“blish”,最后是“bar”目录。...原创 2022-07-24 15:35:41 · 112 阅读 · 0 评论 -
11.书写规则-伪目标
由于伪目标的特性是,总是被执行的,所以其依赖的那三个目标就总是不如“all”这个目标新。“伪目标”并不是一个文件,只是一个标签,由于“伪目标”不是文件,所以make无法生成它的依赖关系和决定它是否要执行。当然,为了避免和文件重名的这种情况,我们可以使用一个特殊的标记“.PHONY”来显示地指明一个目标是“伪目标”,向make说明,不管是否有这个文件,这个目标就是“伪目标”。只要有这个声明,不管是否有“clean”文件,要运行“clean”这个目标,只有“makeclean”这样。...原创 2022-07-24 16:17:51 · 171 阅读 · 0 评论 -
12.书写规则-静态模式
试想,如果我们的“%.o”有几百个,那种我们只要用这种很简单的“静态模式规则”就可以写完一堆规则,实在是太有效率了。所以,我们的“目标模式”或是“依赖模式”中都应该有“%”这个字符,如果你的文件名中有“%”那么你可以使用反斜杠“\”进行转义,来标明真实的“%”字符。prereq-parrterns是目标的依赖模式,它对target-parrtern形成的模式再进行一次依赖目标的定义。静态模式可以更加容易地定义多目标的规则,可以让我们的规则变得更加的有弹性和灵活。...原创 2022-07-24 16:59:43 · 149 阅读 · 0 评论