操统实习week1

一、makefile语法

Makefile语法参考资料
注意:在Makefile中添加的时候,clean的时候也要进行添加!

二、nachos的makefile结构

接下里以threads为例分析nachos的makefile的结构。
首先我们先看看makefile执行的过程:
在这里插入图片描述

首先:我们在编译nachos的时候,先cd code然后执行make,这个make就会寻找code下的makefile文件。
code下的makefile文件开始是伪目标all,因为其位置在最前面,所以其就会被当成默认的目标,那么之后就会执行all下的命令,其后的print,clean没有要求是不会被执行的。
在这里插入图片描述

然后,我们以threads为例,首先会进入threads目录,然后执行make,make的目标有两个,一个是depend,一个是nachos。depend的作用之后再说,nachos就是最后生成的可执行目标文件。进入threads目录之后,就会寻找该目录下的makefile文件并进行执行。
按照make的执行的过程,在thread下的makefile文件下include了其他的makefile文件,所以首先会读入两个Makefile文件的内容:
在这里插入图片描述
之后进行变量的初始化,变量的初始化涉及了三个Makefile文件,首先是threads下的Makefile文件,之后是code下的Makefile.common和Makefile.dep.。
threads下的Makefile:
在这里插入图片描述makefile.common:其中与threads有关的是:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

其中比较重要的是:以下三个变量,其涉及到目标生成的依赖文件:
在这里插入图片描述
定义在makefile.common中,分别是threads的h文件,c文件,o文件。
之后是目标的生成:目标有两个:
首先是depend:
在这里插入图片描述
作用:depend的作用主要是当我们向threads中添加源程序或者头文件的时候,执行make depend会自动修改threads下的makefile,便于我们进行修改。

第二个目标是nachos:
在这里插入图片描述
生成nachos的依赖是OFILES,而OFILES依赖于C_OFILES.
在这里插入图片描述
其中C_OFILES文件的生成:
在这里插入图片描述
这里应该是静态链接,首先目标是所有的.o文件,其依赖的文件是.c文件,$<的意思就是逐个生成。

以上就是makefile的结构,之后生成nachos目标,进入threads之后./nachos就可以执行。
如果要单独编译某一部分,那么就可以进入相应部分,先make depend,然后再make nachos。

辛苦营业,事情好多额!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值