百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

makefile 初探之《规则及介绍》

lipiwang 2024-11-27 17:15 11 浏览 0 评论

1:规则实例

在讲述这个 Makefile 之前,还是让我们先来粗略地看一看 Makefile 的规则。

target ... : prerequisites ... 
    command 
  • target 也就是一个目标文件,可以是 Object File,也可以是执行文件。
  • prerequisites 就是,要生成那个 target 所需要的文件或是目标。
  • command 也就是 make 需要执行的命令。(任意的 Shell 命令)

这是一个文件的依赖关系,也就是说,target 这一个或多个的目标文件依赖于prerequisites 中的文件,其生成规则定义在 command 中。

说白一点就是说prerequisites中如果有一个以上的文件比 target 文件要新的话,command 所定义的命令就会被执行。这就是 Makefile 的规则。也就是 Makefile 中最核心的内容

下面我们下面我们从一个实例中来看一下Makefile的编写方式

首先目录下包含了这些文件 add.c add.h sub.c sub.h cal.c。其中cal.c要调用add.c 和sub.c 中的函数,也就是说cal.c要依赖add.c和sub.c

cal : add.o sub.o cal.o
	gcc -o cal add.o sub.o cal.o
add.o : add.c
	gcc -c add.c
sub.o : sub.c
	gcc -c sub.c
cal.o : cal.c
	gcc -c cal.c
clean :
	rm *.o cal

上面是makefile的文件编写,第一行中cal : add.o sub.o cal.o

cal为目标,add.o sub.o cal.o为生成目标的所需依赖

第二行表示要执行的shell命令生成目标文件cal,到此处我们已将我们的最终目标生成,但是该目标还有add.o sub.o cal.o几个依赖文件

后面几行就是生成add.o sub.o cal.o所执行的步骤,他们都符合Makefile的规则:

target ... : prerequisites ... 
    command 

最后面我们添加一个clean命令,该命令删除所有Makefile在生成目标文件cal过程中生成的文件,主要包括add.o sub.o cal.o还有cal。其中*.o表示删除所有.o文件

下面我们执行以下make命令看一下效果

从上图可以看出makefile执行的步骤,显示生成了add.o sub.o cal.o这几个依赖文件,最后生成cal目标文件

我们再看一下执行make clean后的效果

执行make clean 后删除了add.o sub.o cal.o和cal文件。

3:makefile执行过程

在默认的方式下,也就是我们只输入 make 命令。那么,

  1. make 会在当前目录下找名字叫“Makefile”或“makefile”的文件。
  2. 如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“cal”这个文件,并把这个文件作为最终的目标文件。
  3. 如果 cal文件不存在,或是 cal所依赖的后面的 .o 文件的文件修改时间要比 edit这个文件新,那么,他就会执行后面所定义的命令来生成 cal这个文件。
  4. 如果 cal所依赖的.o 文件也存在,那么 make 会在当前文件中找目标为.o 文件的依赖性,如果找到则再根据那一个规则生成.o 文件。(这有点像一个堆栈的过程)
  5. 当然,你的 C 文件和 H 文件是存在的啦,于是 make 会生成 .o 文件,然后再用 .o 文件生命 make 的终极任务,也就是执行文件 cal了

相关推荐

微软Office Open XML中的数字签名漏洞

MicrosoftOffice是最广泛使用的办公文档应用程序之一。对于重要文件,如合同和发票,可以对其内容进行签名,以确保其真实性和完整性。自2019年以来,安全研究人员发现了针对PDF和ODF等其...

Javaweb知识 day12 XML(javaweb中xml作用)

一、XML:1.1概念:ExtensibleMarkupLanguage可扩展标记语言*可扩展:标签都是自定义的。<user><student>1.2功能:...

易筋洗髓功——内外同修方可致远(易筋洗髓功口诀)

达摩祖师所传易筋、洗髓两经,一分为二,二实为一,无非以方便法门接引众生,而归于慈悲清净之心地。修炼《易筋经》是为强身健体,修炼《洗髓经》是为修心养性,此二者相辅相成,内外兼修,缺一不可。这是一套传统中...

《增演易筋洗髓内功图说》17卷(1930年(清)周述官撰 4

《增演易筋洗髓内功图说》17卷(1930年(清)周述官撰 5

道家洗髓功修炼要义,洗髓功如何做到丹田聚气?

不管是道家洗髓功,还是洗髓经,其修炼的关键点就在于得气、行气、聚气...那么,作为洗髓功修炼者,具体该怎么做呢?在实际修炼中,就洗髓功的修炼方法来讲,我们可以简单的归纳为修炼三部曲,其具体表现如下:一...

「清风聊练功」师门传我易筋经:聊聊我的学习经历和正身图感受

一个人的眼界认识,是随着是自身的知识积累和水平不断成长的。开篇为什么要说这么一句呢?是从我的学习经历上感受明显的这句话:一处不到一处迷。我们学传统武术,内功功法,也是从小白到明白一步步走的,走的越远,...

内功外练功介绍(练内功 外功)

这里介绍我练习的两套动功心得体会。是老道长的八部金刚功、长寿功和增演易筋洗髓经。八部金刚功外练奇经八脉,练出健康强壮的好身体还是可以的,长寿功也是内练功法。这部功法很好的预防效果。这个大家都认同的。说...

孔德易筋洗髓大全注解(下)(孔德易筋经教学视频)

...

《增演易筋洗髓内功图说》17卷(1930年(清)周述官撰 1

少林空悟老师珍藏

国术典籍:《增演易筋洗髓内功图说》【2024年8月编校】

《增演易筋洗髓内功图说》系养生气功著作,全书共十八卷。清周述官编撰于光绪二十一年(1895年)。清光绪十九年(1893年),僧人静一空悟将少林功法传授于周述官,并将《增益易筋洗髓内功图说》十二卷(按,...

小说:自媒体小白的修道之路-洗髓(自媒体小白运营技巧)

谁应了谁的劫,谁又变成了谁的执念。当沧海遗忘了桑田,这世间又多了一个不回家的人!异域空间中,知生缓缓起身,目光扫了一下小帝后,又转身看向画板上的那朵白色蒲公英,自言道:“白瑛,这一世我们莫要再辜负了!...

这才是少林洗髓经真相:它是静功和导引术与八段锦暗合

不少朋友误解易筋经和洗髓经,将其简单归为强力呼吸的吐纳功以及为了提升房中的关窍功。事实上易筋经和洗髓经是两部功法:易筋经主要为炼体,包含以膜论为核心的十二月怕打筋膜法,以及辅助的呼吸、导引功法;洗髓经...

孔德易筋洗髓大全注解(上)(孔德易筋经洗髓经视频)

...

洗髓经传承与心得(二)(《洗髓经》)

...

取消回复欢迎 发表评论: