关闭

make笔记

1184人阅读 评论(0) 收藏 举报

规则:. 1

目标(target):. 1

缺省最终目标... 1

假想目标... 1

命令... 2

依赖... 2

没有命令或依赖的规则... 2

 

规则:

规则形式如下:

targets : prerequisites

        command

        ...

或:

targets : prerequisites ; command

        command

        ...

目标(target:

是文件的名称,中间由空格隔开。通配符可以在文件名中使用(参阅在文件名中使用通配符),‘am)’形式的文件名表示成员m在文件a中(参阅档案成员目标)。一般情况下,一条规则只有一个目标,但偶尔由于其它原因一条规则有多个目标(参阅具有多个目标的规则)。

缺省最终目标

缺省最终目标是makefile文件中的第一条规则的目标。如果第一条规则有多个目标,只有第一个目标被认为是缺省最终目标。有两种例外的情况:以句点(‘.’)开始的目标不是缺省最终目标(如果该目标包含一个或多个斜杠‘/’,则该目标也可能是缺省最终目标);另一种情况是格式规则定义的目标不是缺省最终目标

假想目标

假想目标的名称前带‘.’。假想目标并不是一个真正的文件名,它仅仅是您制定的一个具体规则所执行的一些命令的名称。使用假想目标有两个原因:避免和具有相同名称的文件冲突和改善性能。

命令

行以Tab字符开始,第一个命令可以和依赖在一行,命令和依赖之间用分号隔开,也可以在依赖下一行,以Tab字符为行的开始。这两种方法的效果一样。

依赖

也由文件名构成,文件名之间由空格隔开,通配符和档案成员也允许在依赖中出现。

没有命令或依赖的规则

如果一个规则没有依赖、也没有命令,而且这个规则的目标也不是一个存在的文件,则make认为只要该规则运行,该目标就已被更新。这意味着,所有以这种规则的目标为依赖的目标,它们的命令将总被执行。这里举一个例子:

clean: FORCE

        rm $(objects)

FORCE:

这里的目标‘FORCR’满足上面的特殊条件,所以以其为依赖的目标‘clean’将总强制它的命令执行。关于‘FORCR’的名字没有特别的要求,但‘FORCR’是习惯使用的名字。

也许您已经明白,使用‘FORCR’的方法和使用假想目标(.PHONY: clean)的结果一样,但使用假想目标更具体更灵活有效,由于一些别的版本的make不支持假想目标,所以‘FORCR’出现在许多makefile文件中。

 

0
0
查看评论

MakeDown的使用

目录 标题 分割线 文本 普通文本 单行文本 文本块 文字高亮 换行 特殊字体 图片 链接 图片链接 锚点 列表 无序列表 多级无序列表 有序列表 有序列表自动排序 多级有序列表 引用 常用引用文本 多级引用文本 表格 表情 代码 补充说明 标题标题分六级 # 一级标题 ## 二级标题 ###...
  • limingnanhai
  • limingnanhai
  • 2017-11-10 11:50
  • 73

LFS7.0 笔记

1.在编译Glibc-2.14.1的时候,如果你用的系统是Ubuntu11,那么编译的过程中可能会出现下面这个错误: mawk: scripts/gen-sorted.awk: line 19: regular expression compile failed (bad class -- [...
  • wu55uw
  • wu55uw
  • 2012-12-13 17:48
  • 480

memcache学习笔记(一)

memcache学习笔记(一)一、安装注:memcache用到libevent这个库用于Socket处理,所以还需要安装libevent,官网:http://www.monkey.org/~provos/libevent/,目前最新的版本是2.0.22 安装中遇到的问题:本来打算在mac中安装,然...
  • jn_aswq
  • jn_aswq
  • 2016-09-11 22:53
  • 1393

LFS-Linux From Scratch学习笔记——LFS系统准备

LFS-Linux From Scratch学习笔记——LFS系统准备。
  • jiangwei0512
  • jiangwei0512
  • 2017-08-19 23:05
  • 578

[raspberry pi] 树莓派 Kernel 编译笔记

来自:http://aguegu.net/?p=1544 发现自己的知识体系有一段很大的空缺,就是对于 ARM 还是太缺少了解,下面是AVR系列单片机,上面是PC机、服务器,好歹都还算大概见过是怎么一回事,而对于SOC,就了解得很不够,包括对于手机、安卓或是苹果系都只是停留在应用层...
  • jinzheng_2010
  • jinzheng_2010
  • 2013-03-15 09:37
  • 16674

make 命令参数笔记

make 命令参数笔记 转载至:http://www.coin163.com/it/2376448961193984859/c-makefile-make 来源:iteye, 原文 相关推荐:centos make命令不能用 在centos 5下安装软件遇到的问题,googl...
  • lw2011cg
  • lw2011cg
  • 2017-05-06 22:39
  • 68

GCC/MAKE使用笔记

<br />欲善其事,必先利其器。要在Linux下写程序,首先要了解基本的工具——gcc/g++/make。<br />    用gcc/g++生成可执行的C或C++程序需要经过四步:<br />    ...
  • yitian20000
  • yitian20000
  • 2010-07-26 16:18
  • 2376

Linux 下 make 命令 及 make 笔记

Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一。管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题。本文我们将用一些实例来讨论 make 命令背后的工作机制。 Make 如何工作的 对于不知道背后机理的人来说,...
  • txl16211
  • txl16211
  • 2015-03-26 22:35
  • 1073

make file笔记(待续)

<br />    make file的简单用法,以后用到其它的再补充。<br />    两个非常简单的C程序,hello.c调用sayHello.c中的方法,打印一句话,makefile文件写法如下:<br...
  • homer1984
  • homer1984
  • 2011-01-02 21:14
  • 318

GNU make 笔记

一、可执行文件的生成过程:编译:把高级语言转换成机器指令,生成中间目标文件,即".o"文件。链接:把多".o"文件,或者".o"文件和库文件链接成为可执行文件。(linux下可执行文件为ELF格式。 二、静态库:多个.o文件的集合...
  • lvming404
  • lvming404
  • 2010-03-27 16:59
  • 347
    个人资料
    • 访问:1402328次
    • 积分:15002
    • 等级:
    • 排名:第923名
    • 原创:227篇
    • 转载:95篇
    • 译文:2篇
    • 评论:162条
    文章分类
    文章存档
    最新评论