Makefile相关总结

原创 2011年01月17日 21:57:00

1、主要功能:make是一个解释Makefile文件中指令的命令工具,其最基本的功能就是通过Makefile文件描述源程序之间的相互关系并自动维护编译工作,它会告知系统以何种方式编译和链接程序。剩下的工作就是输入make,就可以自动完成所有的编译任务,并且生成目标程序。

2、工作流程:

1)查找当前目录下的Makefile文件

2)初始化文件中的变量

3)分析Makefie中的所有规则

4)为所有的目标文件创建依赖关系

5)根据依赖关系,决定哪些目标文件要重新生成

6)执行生成命令

3、原理:make工具判断文件有无更新的主要依据是判断依赖文件的建立时间是否比所生成的目标文件要晚。

4Make命令的格式:执行make命令时只需要在Makefile文件所在的目录输入make指令即可,make命令本身带有一些参数:【选项】、【宏定义】、【目标文件】。

标准形式如下:

Make [选项] [宏定义] [目标文件]

下面是一些常用选项:

-f file :指定Makefile的文件名

-n 打印出所有的执行命令,但事实上并不执行这些命令

-s 在执行时不打印命令

-w 如果在make执行时要改变目录,则打印当前的执行目录

-I <dirname> : 指定所有Makefile所在的目录。

-d 打印调试信息

-h help文档,显示Makefile的帮助文档。

Make在没有指定目标文件时,默认生成Makefile文件的第一个目标文件。

5、Makefile文件语法规则:Makefile文件定义了一系列的规则

#注释 //shell脚本一样

目标文件:依赖文件列表 //目标:目标文件列表,一般指的是编译过程中生成的.o文件或可执行文件,也可以是要执行的动作,如“clean”这样的目标。

.......................

<TAB>命令列表 //命令列表:make程序执行的动作,也是创建目标文件的命令,一个规则可以有多条命令,每一行只能有一条命令。

.......................

Makefile文件中变量的使用:

一般都是大写,放在Makefile的顶部来定义,后面跟一个“=”,“=”后面是设定的变量值。如果要引用这个变量,用“$”,变量名需要放在“$”后面的括号中。

Make中一些特殊的内部变量,它们根据每个规则内容定义。

$@ 指代当前规则下的目标文件列表

$< 指代依赖文件列表中的第一个文件

$^ 指代依赖文件列表中的所有依赖文件

$? 指代依赖文件列表中新于对应目标文件的文件列表

使用变量的好处是简化Makefile的书写,方便对程序的维护。变量一般代表 一个文件列表 、编译命令选项。

常用的伪目标:clean(负责清理工作) 、 install(负责安装工作,将可执行程序拷贝到对应目录)。

太基础了,还有很多重要的没有补充。。。。。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

makefile相关文档

  • 2014-10-23 10:25
  • 662KB
  • 下载

Makefile相关

  • 2009-05-19 11:30
  • 1.13MB
  • 下载

Linux相关-------简单工程Makefile的编写

工程Makefile的编写,对于初始Makefile的菜鸟们来说,还是比较头疼的一件事情,如何做到整个工程结构清晰,各个模块相对独立,模块的添加 删除等都比较方便,各个层次的的Makefile风格一致...

makefile相关资料

  • 2011-06-08 22:52
  • 328KB
  • 下载

makefile里PHONY的相关介绍

Phony Targets PHONY 目标并非实际的文件名:只是在显式请求时执行命令的名字。有两种理由需要使用PHONY 目标:避免和同名文件冲突,改善性能。 如果编写一个规则,并不产生...

makefile里PHONY的相关介绍

makefile里PHONY的相关介绍 http://www.cnblogs.com/hnrainll/archive/2011/04/12/2013377.html Phony ...

wince下sources\sources.cmn\Makefile.def的相关作用

wince下sourcessources.cmnMakefile.def的相关作用

makefile 文件的语法及相关知识(2)

3 Makefile书写规则  --------------------------------------------------------------------------------  规...

makefile里PHONY的相关介绍

http://www.cnblogs.com/hnrainll/archive/2011/04/12/2013377.html Phony Targets PHONY 目标并非实际的文件名:只...

Linux下makefile相关知识

概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 professional的程序员,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)