
Makefile
爱思考的实践者
我的到来,让世界变得更好。My coming makes this world a better place to live in.
展开
-
linux下Makefile学习之四(使用变量)
第1讲 Makefile里有什么?Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1、显式规则。显式规则说明了,如何生成一个或多个目标文件。这是由Makefile的书写者明显指出:要生成的文件,文件的依赖文件,生成的命令。2、隐晦规则。由于我们的make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地、简略地书写Makefile,这转载 2014-12-22 18:18:16 · 803 阅读 · 0 评论 -
linux下Makefile的学习之九(更新函数库文件)
使用make更新函数库文件———————————函数库文件也就是对Object文件(程序编译的中间文件)的打包文件。在Unix下,一般是由命令"ar"来完成打包工作。一、函数库文件的成员一个函数库文件由多个文件组成。你可以以如下格式指定函数库文件及其组成:archive(member)这个不是一个命令,而一个目标和依赖的定义。一般来说,这种用法基本上就是为了转载 2015-03-03 17:18:05 · 473 阅读 · 0 评论 -
linux下Makefile学习之二(书写规则)
书写规则————规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在 Makefile中,规则的顺序是很重要的,因为,Makefile中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让 make知道你的最终目标是什么。一般来说,定义在Makefile中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一转载 2014-12-23 15:28:39 · 725 阅读 · 0 评论 -
Linux下makefile学习之一(概述介绍)
第一讲 概述——什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要做一个好的和 professional的程序员,makefile还是要懂的。这就好像现在有这么多的HTML编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefile了转载 2014-12-22 15:40:46 · 660 阅读 · 0 评论 -
linux下Makefile的学习之八(隐含规则)
隐含规则————在我们使用Makefile时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译C/C++的源程序为中间目标文件(Unix下是[.o] 文件,Windows下是[.obj]文件)。本章讲述的就是一些在Makefile中“隐含的”、早先约定了的、不需要我们再写出来的规则。“隐含规则”也就是一种惯例,make会按照这种“惯例”心照不喧地来运行,那怕我转载 2015-03-02 17:21:24 · 620 阅读 · 0 评论 -
linux下Makefile学习之三(书写命令)
书写命令————每条规则中的命令和操作系统Shell的命令行是一致的。make会按顺序一条一条地执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以Tab键开头的,那么make会认为其是一个空命令。我们在UNIX下可能会使用不同的Shell,但是make的命令默认是被“/bin/sh”—转载 2014-12-23 17:06:07 · 488 阅读 · 0 评论 -
linux下Makefile的学习之七(make 的运行)
make 的运行——————一般来说,最简单的就是直接在命令行下输入make命令,make命令会找当前目录的makefile来执行,一切都是自动的。但也有时你也许只想让 make重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。本章节就是讲述如何使用make命令的。第1讲 make的退出码make命令执行后有三个退出码:转载 2014-12-24 16:18:26 · 5572 阅读 · 0 评论 -
linux下Makefile学习之五(使用条件判断)
使用条件判断——————使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。第1讲 示例下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。libs_for_gcc = -lgnunormal_libs =foo: $(objects)ifeq (转载 2014-12-24 10:13:46 · 416 阅读 · 0 评论 -
linux下Makefile学习之六(使用函数)
使用函数————在Makefile中可以使用函数来处理变量,从而让我们的命令或是规则更为灵活和具有智能。make所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。第1讲 函数的调用语法函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:$( )或是${ }这里,就是函数名,make支持的函数不多。是函数转载 2014-12-24 11:14:55 · 395 阅读 · 0 评论 -
makefile中的wildcard用法
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下,如果需要通配符有效,就需要使用函数“wildcard”,其用法是:$(wildcard PATTERN...) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配符原创 2015-12-27 17:14:05 · 11071 阅读 · 2 评论