实验三 makefile文件的编写Word下载.docx
- 文档编号:15760749
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:12
- 大小:1.72MB
实验三 makefile文件的编写Word下载.docx
《实验三 makefile文件的编写Word下载.docx》由会员分享,可在线阅读,更多相关《实验三 makefile文件的编写Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
command……
结构中各部分的含义:
(1)、target(目标):
一个目标文件,可以是Object文件,也可以是执行文件。
还可以是一个标签(Label)。
(2)、dependency(依赖):
要生成目标文件(target)所依赖哪些文件
(3)、command(命令):
创建项目时需要运行的shell命令(注:
命令(command)部分的每行的缩进必须要使用Tab而不能使用多个空格)。
Makefile实际上是一个文件的依赖关系,也就是说,target这一个或多个的目标文件依赖于dependency中的文件,其生成规则定义在命令command中。
如果依赖文件(dependency)中有一个以上的文件比目标(target)文件要新的话,shell命令(command)所定义的命令就会被执行。
这就是Makefile的规则。
也就是Makefile中最核心的内容。
四、实验报告要求
1.实验目的
2.实验内容
学习如何编写简单的makefile文件。
3.实验详细步骤
写出整个项目的源程序,两种方法实现的makefile文件,并记录在编写makefile文件时遇到的错误和修改方法。
4.实验技巧和心得体会
附录:
编写简单程序的makefile文件
编写头文件、源文件以及makefile文件,源文件主要有init.c、sort_a.c、find.c、find_bin.c、print.c以及main.c,分别实现数组的初始化,数组的排序,数组顺序查找,数组的二分法查找,数组的打印以及主函数部分功能的实现,头文件有locating.h和func.h,前者是包含库的头文件,后者是功能函数的声明。
注意,所有文件必须在同一目录下。
步骤:
1.在终端主目录下创建locating文件夹,并进入文件夹。
命令为:
mkdir~/locating
cdlocating
2.创建init.c、sort_a.c、find.c、find_bin.c、print.c、main.c、locating.h、func.h和makefile
geditinit.csort_a.cfind.cfind_bin.cprint.cmain.csocating.hfunc.hmakefile
也可以单独创建,如果没有保存对应文件,文件将不存在(gcc改为touch,直接创建保存)。
3.编写代码
locating.h文件:
#ifndef_LOCATING_H_
#define_LOCATING_H_
#defineN10
#include<
stdio.h>
string.h>
stdlib.h>
time.h>
#endif
func.h文件:
#ifndef_FUNC_H_
#define_FUNC_H_
/*-------------------数组初始化----------------*/
voidinit_array(inta[],intn);
/*-------------------数组排序-----------------*/
voidinsert_sort(inta[],intn);
//插入排序
/*-------------------顺序查找-----------------*/
intfind_array_1(inta[],intlength,intvalue);
intfind_array_2(inta[],intlength,intvalue);
/*------------------二分法查找---------------*/
intfind_array_bin_1(inta[],intlength,intvalue);
intfind_array_bin_2(inta[],ints,inte,intvalue);
/*-------------------打印数组-----------------*/
voidprint_array(inta[],intn);
init.c文件:
/*----------------数组初始化----------------*/
#include"
locating.h"
voidinit_array(inta[],intn)//a是数组名,n是元素个数
{
inti=0;
srand(time(0));
//srand函数是随机数发生器的初始化函数
for(i=0;
i<
n;
i++)
a[i]=random()%N;
}
sort_a.c文件:
/*---------------插入排序-------------------*/
voidinsert_sort(inta[],intn)//a是数组名,n是元素个数
registerinttemp,i,j;
i<
n-1;
i++)
{
temp=a[i+1];
for(j=i;
j>
=0;
j--)
{
if(a[j]>
temp)
a[j+1]=a[j];
else
break;
}
a[j+1]=temp;
}
find.c文件:
/*----------------------------顺序查找----------------------------*/
/*-----a是数组,length是数组长度,value查找的值-------*/
intfind_array_1(inta[],intlength,intvalue)
inti;
length;
if(a[i]==value)
returni;
return-1;
/*------------递归法------------*/
intfind_array_2(inta[],intlength,intvalue)
if(0==length)
return-1;
if(a[length-1]==value)
returnlength-1;
find_array_2(a,length-1,value);
find_bin.c文件:
/*----------------------------二分法查找------------------------------*/
intfind_array_bin_1(inta[],intlength,intvalue)
ints=0,e=length-1,m;
while(s<
=e)
{
m=(s+e)/2;
if(a[m]<
value)
s=m+1;
if(a[m]>
e=m-1;
if(a[m]==value)
returnm;
/*-----------递归法----s是数组起始下标,e结束下标---*/
intfind_array_bin_2(inta[],ints,inte,intvalue)
staticintm;
if(s>
e)
m=(s+e)/2;
if(a[m]<
s=m+1;
if(a[m]>
e=m-1;
if(a[m]==value)
returnm;
returnfind_array_bin_2(a,s,e,value);
print.c文件:
/*---------------------------打印--------------------------------*/
voidprint_array(inta[],intn)//a是数组名,n是元素个数
printf("
a[%d]=%d\n"
i,a[i]);
main.c文件:
func.h"
/*--主函数可以自己写,这边重复数字,只要找到就输出其中一个,有能力请自己完善--*/
intmain(intargc,char*argv[])
inta[N],i,k,n;
init_array(a,N);
insert_sort(a,N);
print_array(a,N);
N;
k=random()%N;
n=find_array_bin_2(a,0,N-1,k);
if(n==-1)
printf("
无此节点!
\n"
);
else
数值=%d,数组下标=%d\n"
k,n);
return0;
到了最主要的程序makefile的编写:
(1)方法一(普通):
socating:
init.osort_a.ofind.ofind_bin.oprint.omain.o
gccinit.osort_a.ofind.ofind_bin.oprint.omain.o-osocating
init.o:
init.clocating.h
gcc-cinit.c
sort_a.o:
sort_a.clocating.h
gcc-csort_a.c
find.o:
find.clocating.h
gcc-cfind.c
find_bin.o:
find_bin.clocating.h
gcc-cfind_bin.c
print.o:
print.clocating.h
gcc-cprint.c
main.o:
main.clocating.hfunc.h
gcc-cmain.c
clean:
rminit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验三 makefile文件的编写 实验 makefile 文件 编写