![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Makefile
本专题对 GNU 的 make 进行讲述,内容根据陈皓写的《跟我一起写 Makefile》整理而得,转载请注明出处。
big__C
小白
展开
-
makefile的隐含规则
目录一、使用隐含规则二、隐含规则一览三、隐含规则使用的变量1、关于命令的变量。2、关于命令参数的变量四、隐含规则链五、定义模式规则六、老式风格的"后缀规则"七、隐含规则搜索算法在我们使用 Makefile 时,有一些我们会经常使用,而且使用频率非常高的东西,比如,我们编译 C/C++的源程序为中间目标文件(Unix 下是[.o]文件,Windows 下是[.obj]文件)。本章讲述的就是一些在 Makefile 中的“隐含的”,早先约定了的,不需要我们再写出来的规则。“隐含规则”也就是一种惯例,make原创 2020-07-03 11:54:28 · 416 阅读 · 0 评论 -
makefile的运行
这里写目录标题一、 make 的退出码二、指定 Makefile三、指定目标四、检查规则五、 make 的参数一般来说,最简单的就是直接在命令行下输入 make 命令,make 命令会找当前目录的makefile 来执行,一切都是自动的。但也有时你也许只想让 make 重编译某些文件,而不是整个工程,而又有的时候你有几套编译规则,你想在不同的时候使用不同的编译规则,等等。一、 make 的退出码make 命令执行后有三个退出码:0 - 表示成功执行。1 - 如果 make 运行时出现任何错误,原创 2020-06-22 09:33:27 · 6483 阅读 · 0 评论 -
Makefile中使用函数
目录一、函数的调用语法二、字符串处理函数三、文件名操作函数四、 foreach 函数五、 if 函数六、 call 函数七、 origin 函数八、 shell 函数九、控制 make 的函数在 Makefile 中可以使用函数来处理变量,从而让我们的命令或是规则更为的灵活和具有智能。make 所支持的函数也不算很多,不过已经足够我们的操作了。函数调用后,函数的返回值可以当做变量来使用。一、函数的调用语法函数调用,很像变量的使用,也是以“”来标识的,其语法如下:”来标识的,其语法如下:”来标识的,原创 2020-06-21 20:31:13 · 239 阅读 · 0 评论 -
Makefile中使用条件判断
使用条件判断,可以让 make 根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。一、示例下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用 GNU 函数编译目标。libs_for_gcc = -lgnunormal_libs =foo: $(objects)ifeq ($(CC),gcc)$(CC) -o foo $(objects) $(libs_for_gcc)else$(CC) -o foo $(objects) $(n原创 2020-06-21 10:59:04 · 854 阅读 · 0 评论 -
Makefile中使用变量
目录一、变量的基础二、变量中的变量三、变量高级用法四、追加变量值五、 override 指示符六、多行变量七、环境变量八、目标变量在 Makefile 中的定义的变量,就像是 C/C++语言中的宏一样,他代表了一个文本字符串,在 Makefile 中执行的时候其会自动原模原样地展开在所使用的地方。其与 C/C++所不同的是,你可以在 Makefile 中改变其值。在 Makefile 中,变量可以使用在“目标”,“依赖目标”,“命令”或是 Makefile 的其它部分中。变量的命名字可以包含字符、数字,下原创 2020-06-20 19:39:41 · 4794 阅读 · 0 评论 -
Makefile的书写命令
目录一、显示命令二、命令执行三、命令出错四、嵌套执行 make五、定义命令包每条规则中的命令和操作系统 Shell 的命令行是一致的。make 会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的。在命令行之间中的空格或是空行会被忽略,但是如果该空格或空行是以 Tab 键开头的,那么 make 会认为其是一个空命令。我 们 在 UNIX 下 可 能 会 使 用 不 同 的 Shell , 但 是 make 的 命 令 默 认 是 被/bin/sh——原创 2020-06-20 15:17:59 · 297 阅读 · 0 评论 -
Makefile的书写规则
目录一、规则举例二、规则的语法三、在规则中使用通配符四、文件搜寻五、伪目标六、多目标七、静态模式八、自动生成依赖性规则包含两个部分,一个是依赖关系,一个是生成目标的方法。在 Makefile 中,规则的顺序是很重要的,因为,Makefile 中只应该有一个最终目标,其它的目标都是被这个目标所连带出来的,所以一定要让 make 知道你的最终目标是什么。一般来说,定义在 Makefile 中的目标可能会有很多,但是第一条规则中的目标将被确立为最终的目标。如果第一条规则中的目标有很多个,那么,第一个目标会成为原创 2020-06-19 21:25:27 · 281 阅读 · 0 评论 -
Makefile的介绍与工作原理
目录第一部分、概述第二部分、关于程序的编译和链接第三部分、 Makefile 介绍一、 Makefile 的规则二、一个示例三、 make 是如何工作的第一部分、概述什么是 makefile?或许很多 Winodws 的程序员都不知道这个东西,因为那些 Windows的 IDE 都为你做了这个工作,但我觉得要作一个好的和 professional 的程序员,makefile还是要懂。特别在Linux下的软件编译,你就不能不自己写 makefile 了,会不会写 makefile,从一个侧面说明了一原创 2020-06-19 16:02:44 · 792 阅读 · 0 评论