实验三 makefile文件的编写Word下载.docx

上传人:b****3 文档编号:15760749 上传时间:2022-11-15 格式:DOCX 页数:12 大小:1.72MB
下载 相关 举报
实验三 makefile文件的编写Word下载.docx_第1页
第1页 / 共12页
实验三 makefile文件的编写Word下载.docx_第2页
第2页 / 共12页
实验三 makefile文件的编写Word下载.docx_第3页
第3页 / 共12页
实验三 makefile文件的编写Word下载.docx_第4页
第4页 / 共12页
实验三 makefile文件的编写Word下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

实验三 makefile文件的编写Word下载.docx

《实验三 makefile文件的编写Word下载.docx》由会员分享,可在线阅读,更多相关《实验三 makefile文件的编写Word下载.docx(12页珍藏版)》请在冰豆网上搜索。

实验三 makefile文件的编写Word下载.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1