一、GNUmake与Makefile的简介
来源:互联网 发布:h3c snmp 网管软件 编辑:程序博客网 时间:2024/05/18 05:31
GNUmake与Makefile的简介
一、GNUmake
Linux(Unix)下,使用(GNU)make解释Makefile规则文件来完成工程的编译、链接等构建工作,快速的构建和管理工程。
二、Makefile
Makefile是make执行时读取的规则文件,通常我们命名为“Makefile”。Makfile文件是由一条一条的规则组合而成的。第一条规则我们称之为终极目标,当我们在shell下执行make时默认解释的规则就是终极目标的规则。一个完整的makefile文件,通常包含5个部分:显示规则、隐含规则、变量定义、指示符和注释。
三、make的执行机制
make执行时需要在工作目录下依次查看名为“GNUmakefile”、“makefile”、“Makefile”的规则说明文件。如果找到其中之一,则根据规则文件中第一个规则(如果不指定make目标)的目标和依赖最后修饰时间先后来确定是否更新目标文件。目标文件的最后修改时间晚于依赖文件,则无需更新目标文件,否则则执行对应的命令。如果没有找到三个文件名中的其中一个,则make什么也不会做。可以使用–f 选项来指定make命令读取的规则文本的文件名。
四、书写Makefile规则
Makfle的规则由三部分组成:目标、依赖、命令。目标是我们需要构建的文件,依赖是构建目标时直接或间接参与构建的文件。命令就是通过某种过程来完成目标文件的构建。Makfile规则的格式:
目标 : 依赖
(Tab制表符)命令
目标通常是一个或多个文件,也可以是伪目标(不生成这个文件)。依赖可以是空,可以是一个或多个文件,用来与目标文件作最后修改时间的对比。命令可以为空、一条或多条。下面是一个简单规则的例子,示例1.1
main.o : main.c a.c b.c
(制表符) gcc –c main.c –o main.o当前目录下的结构
|-- main.c
|-- a.c
|-- b.c
第一次执行make,目标文件是main.o,当前目录下并没有main.o,所以make会执行命令来构建main.o。第二次执行make,此时目录下已经存在main.o,并且main.o的最后修改时间晚于三个依赖文件的最后修改时间,所以make并不会执行命令,会提示main.o已经是最新。修改依赖文件中的其中一个并影响文件最后修改时间,第三次执行make,此时由于依赖文件中存在最后修改时间晚于目标文件的依赖文件,所以make又会重新执行命令来生成最新的main.o文件。
- 一、GNUmake与Makefile的简介
- makefile的简介与使用
- Makefile (一)之 简介
- makefile简介与入门
- Makefile 学习笔记(一) Makefile简介
- Makefile 简介(转的)- -
- Makefile的简介
- Makefile的简介
- 编译链接简介及makefile书写<一>
- 一、Makefile的规则
- makefile的写法(一)
- gcc与Makefile(一)
- JMS 与ActiveMQ的简介 一
- makefile 简介
- MAKEFILE简介
- makefile 简介
- makefile 简介
- Makefile简介
- lotus预定义域的使用
- OKHTTP
- 典型的生产者消费者模式
- Jzoj3717【NOI2014模拟7.2】火车
- hdu2594--kmp入门题
- 一、GNUmake与Makefile的简介
- java线程同步 Lock同步锁
- laravel-excel文档翻译笔记
- Codeforces 855 C. Helga Hufflepuff’s Cup (树形dp)
- ARM自带的大小端转换函数
- 乱七八糟
- WEB篇二 CSS
- JAVA Freemarker(5)---取值过程
- jqObject.each()和$.each()区别