makefile文件的使用-"自动化编译"
2016-01-13 10:02
381 查看
1.Makefile文件的概述和介绍:
makefile 关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、 功能、模块分别放在若干个目录中,makefile 定义了一系列的规则来指定,哪些文件需要先 编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile 中也可以执行操作系统的命令。
make 是一个命令工具,是一个解释 makefile 中指令的命令工具,一般来说,大多数的 IDE 都有这个命令,比如:Delphi 的 make,VisualC++ 的 nmake,Linux 下 GNU 的 make。可见,makefile 都成为了一种在工程方面的编译方法。
2. Makefile文件的介绍:
make 命令执行时,需要一个 Makefile 文件,以告诉 make 命令需要怎么样的去编译和链接 程序。
3. Makefile文件的书写规则:
基本的就是最原始的,最原始的就是最稳定的。还是让我们先来粗略地看一看 Makefile 的 基本规则。
target 是一个目标文件,可以是 ObjectFile,也可以是执行文件。还可以是一个标签(Label),对于 标签这种特性,在后续的“伪目标”章节中会有叙述。prerequisites 就是,要生成那个 target 所需要的 文件或是目标。command 是 make 需要执行的命令。(任意的 Shell 命令)
这就是一个简单的Makefile文件;main是我们的第一个目标文件,也是make的缺省目标,这是执行过程:
不难发现,执行make命令,先找到main的目标文件main.o文件,再找到实现main.o文件的目标文件,一步一步执行,依次递归…现在在Makefile文件夹里就生成了可执行文件main,此时就可以直接运行可执行文件了。
makefile 关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、 功能、模块分别放在若干个目录中,makefile 定义了一系列的规则来指定,哪些文件需要先 编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile 中也可以执行操作系统的命令。
make 是一个命令工具,是一个解释 makefile 中指令的命令工具,一般来说,大多数的 IDE 都有这个命令,比如:Delphi 的 make,VisualC++ 的 nmake,Linux 下 GNU 的 make。可见,makefile 都成为了一种在工程方面的编译方法。
2. Makefile文件的介绍:
make 命令执行时,需要一个 Makefile 文件,以告诉 make 命令需要怎么样的去编译和链接 程序。
3. Makefile文件的书写规则:
基本的就是最原始的,最原始的就是最稳定的。还是让我们先来粗略地看一看 Makefile 的 基本规则。
[code]target...:prerequisites... command(前面you一个标准的Tab键空位,8 bit,不能用8个空格键代替) ... ...
target 是一个目标文件,可以是 ObjectFile,也可以是执行文件。还可以是一个标签(Label),对于 标签这种特性,在后续的“伪目标”章节中会有叙述。prerequisites 就是,要生成那个 target 所需要的 文件或是目标。command 是 make 需要执行的命令。(任意的 Shell 命令)
这就是一个简单的Makefile文件;main是我们的第一个目标文件,也是make的缺省目标,这是执行过程:
不难发现,执行make命令,先找到main的目标文件main.o文件,再找到实现main.o文件的目标文件,一步一步执行,依次递归…现在在Makefile文件夹里就生成了可执行文件main,此时就可以直接运行可执行文件了。
相关文章推荐
- mybatis resultType返回类型汇总。
- 刚刚学了C#,正巧碰到弹道设计需要大作业,用到了chart控件,发上来纪念一下。
- [文章摘要]Mining the Semantics of Origin-Destination Flows using Taxi Traces
- Linux添加永久静态路由的方法
- Mac OSX安装MySQL
- Android中Service 详解
- 使用navicat在本地创建远程服务器mysql连接
- 修改mysql数据库为utf8
- JVM学习笔记 -- 从一段几乎所有人代码都会犯错的代码开始
- Unity3D OnBecameVisible OnBecameInVisible 无效 没有用
- 物理尺寸 转换为 像素
- 【剑指offer】5.2时间效率——面试题32:从1到n整数中1出现的次数
- JVM学习笔记 -- 从一段几乎所有人代码都会犯错的代码开始
- display:inline-block会产生空隙
- zabbix教程-centos6.x源码安装zabbix2.x方法
- Access restriction : The type BASE64Decoder is not accessible due to restriction
- Photoshop CS4每次启动都弹出许可协议的解决办法
- 为什么你不应该自行更新 Drupal 网站?
- Cookie 和 Session机制详解
- 修改mysql数据库的用户名和密码