【操作系统实验1】Make Utility 实验

一、实验目标

掌握makefile文件的配置,

二、实验内容

1.思路:

通过编辑makefile配置文件,简化编译工作。利用 vi edtor 手动编写代码例子后,用 make utility 编译工具进行编译,查看编译过程并分析

2.主要代码

在这里插入图片描述
在这里插入图片描述

2.过程及运行结果展示

在这里插入图片描述
修改 b.h 头文件,用 make utility 重新进行编译,查看编译过程并比较分析。
在这里插入图片描述
把生成的2.o文件删除,重新执行 make 操作,并查看结果
在这里插入图片描述
利用宏定义 Makefile 进行编译,删除所生成的目标文件,并重新执行 make 操作,并查看结果
在这里插入图片描述

三、实验结论

Make Utility 是一个命令解释工具,它解释配置文件中的指令(规则),可以只针对被修改的源文件进行重新编译。我们可以通过 Makefile 来编译配置文件;定义编译时的编译规则(来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译);定义了源文件编译中、编译后,对生成文件的配置和管理(存放规则等)。Makefile宏指令是编译 Makefile 时更一般的形式,可以指定编译选项,提高效率。

附录:实验源码

//a.h
#include<stdio.h>


void function_two();
void function_three();





//b.h
#include<stdio.h>
#include<stdlib.h>


void function_two();





//c.h
#include<stdio.h>


void function_three();





//2.c
#include "a.h"

#include "b.h"


void function_two(){

	printf(" This is 2\n");

}





//3.c
#include "a.h"

#include "b.h"


void function_three(){


	printf(" This is 3\n");

}





//main.c
#include "a.h"


extern void function_two();
extern void function_three();

int main()

{

	function_two();

	function_three();

	return 0;

}





//Makefile1
myapp: main.o 2.o 3.o
	gcc -o myapp main.o 2.o 3.o


main.o: main.c a.h
	gcc -c main.c
2.o: 2.c a.h b.h
	gcc -c 2.c
3.o: 3.c b.h c.h
	gcc -c 3.c





//Makefile2
all: myapp

# Which compiler
CC = gcc
# Where are include files kept
INCLUDE = .
# Options for development
CFLAGS = -g -Wall -ansi
# Options for release
CFLAGS = -O -Wall -ansi

myapp: main.o 2.o 3.o
	$(CC) -o myapp main.o 2.o 3.o
main.o: main.c a.h
	$(CC) -I$(INCLUDE) $(CFLAGS) -c main.c
2.o: 2.c a.h b.h
	$(CC) -I$(INCLUDE) $(CFLAGS) -c 2.c
3.o: 3.c b.h c.h
	$(CC) -I$(INCLUDE) $(CFLAGS) -c 3.c



  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值