文档库

最新最全的文档下载
当前位置:文档库 > linux实验三

linux实验三

北京林业大学

2013学年—2014学年第 2 学期 Linux应用实验任务书专业名称:班级:

姓名:学号:

实验题目:实验三 GNU下编译器和调试器的使用初步

实验环境: Linux环境

实验目的:

通过调试一个有问题的程序,进一步熟练使用Vi 操作,而且熟练掌握Gcc 编译及Gdb 的调试命令,通过对有问题程序的跟踪调试,进一步提高发现问题和解决问题的能力。

实验内容:

GNU GCC:

编译单个源文件

#include

#include

int main(int argc, char **argv)

{printf(“Hello world! \n”);

exit(0);

}

linux实验三

输入:wq 保存并退出

用gcc编译

linux实验三

简单编译两个源文件

#include

void goodbye_world(void);

{ printf(“Goodbye, world! \n”);

}

linux实验三

linux实验三

使用gcc的“-c”标记来编译支持库代码:

# gcc -c 文件名.c

这一过程的输出结果是一个名为文件名.o的文件,它包含适合连接到一个较大程序的已编译目标代码。

创建一个简单的示例程序,它包含一个调用上个程序里的goodbye_world的main 函数。

#include

void goodbye_world(void);

int main(int argc, char **argv)

{ goodbye_world();

exit(0);

}

使用gcc编译这个程序:

# gcc -c main.c

linux实验三

linux实验三

现在有了两个目标文件:message.o 和main.o。它们包含能够被Linux 执行的目标代码。要从这个目标代码创建Linux可执行程序,需要再一次调用gcc 来执行连接阶段的工作:

使用外部函数库

GCC常常与包含标准例程的外部软件库结合使用,几乎每一个Linux 应用程序都依赖于由GNU C 函数库GLIBC。

// 请编写代码计算sin30度+ sin60度+sin90度,并完成编译,执行

提示:头文件的使用且GCC编译时使用数学库参数。函数库位置随系统的不同而不同,但它一般会位于目录/lib或/usr/lib中,在这些目录中还有数以百计的其他必需的系统函数库。

linux实验三

linux实验三

GNU GDB:

(1)使用Vi 编辑器,将以下代码输入到名为greet.c 的文件中。此代码的

原意为输出倒序main函数中定义的字符串,但结果显示没有输出。代码

如下所示:

(2)使用Gcc 编译这段代码。

(3)运行生成的可执行文件,观察运行结果。

(4)使用Gdb 调试程序,通过设置断点、单步跟踪,一步步找出错误所在。

(5)纠正错误,更改源程序并得到正确的结果。

linux实验三

linux实验三

实验步骤:

(1)在工作目录上新建文件greet.c,并用Vi 启动:vi greet.c。

(2)在Vi 中输入以上代码。

图1

(3)在Vi 中保存并退出:wq。

(4)用Gcc 编译:

(5)运行greet:./greet,输出为:

可见,该程序没有能够倒序输出。

(6)启动Gdb 调试:

(7)查看源代码并进行调试。

将原来有错的程序经过Gdb调试,找出问题所在,并修改源代码,输出正确的倒序显示字符串的结果。实验步骤中请适当截图。GNU调试器是一个功能非常强大的工具。要了解更加详尽的知识,建议阅读GNU调试器手册。

LINUX环境下的编程实现:

linux实验三

my1.dat

请用深度优先搜索或广度优先搜索对上图的文件系统树进行遍历。

#include

#include

#include

using namespace std;

void DFS(int G[8][8],int v);

int visit[8]={0,0,0,0,0,0,0,0};

string name[8]={"/","dirC","dirA","my3.dat","dirB",

"my1.dat","my2.dat","my1.dat"};

int main()

{

/*0

1 2

3 4 5 6

7

*/

int G[8][8]={0,1,1,0,0,0,0,0,

0,0,0,1,0,0,0,0,

0,0,0,0,1,1,1,0,

0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,1,

0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0};

DFS(G,0);

return 0;

}

void DFS(int G[8][8],int v)

{

int w=0;

cout<";

visit[v]=1;

for(w=0;w<8;w++)

if((G[v][w]!=0)&&(visit[w]==0))

DFS(G,w);

}

实验中存在的问题及解决办法:

树的遍历使用VC6.0可编译运行,移植到Vi后出错。

Linux实验三
实验报告 课程名称 实验成绩 指导教师 杨志武 算法分析与设计 院系 班级 学号 姓名 日期 信息工程学院 软件测试 1601120035 申文聪 实验三 LINUX 及其使用环境() ......
Linux实验三讲解
Linux实验三讲解_自考_成人教育_教育专区。Linux 常熟理工学院《Lin...
linux操作系统实验三
实验三 LINUX SHELL 脚本程序设计 一、实验目的通过本实验练习,使学生...
LINUX实验三
北京林业大学 2013 学年—2014 学年第 2 学期 Linux 应用 实验任务书专业名称: 姓名: 实验三 班学级: 号: 实验题目: 实验环境: 实验目的: GNU 下编译器和......
linux实验三
linux实验三_计算机软件及应用_IT/计算机_专业资料。淮海工学院计算机工程...
linux实验三
linux实验三_计算机软件及应用_IT/计算机_专业资料。淮海工学院计算机工程...
linux实验报告三
实验报告一、实验名称:实验 3 二、实验目的及要求 Linux VI 编辑器 练习 Linux VI 编辑器的使用 三、实验环境 硬件环境:计算机 软件环境:linux 操作系统 四、......
Linux实验三
Linux实验三_计算机软件及应用_IT/计算机_专业资料。. 实验三 用户和文...
Linux实验报告三
Linux实验报告三_计算机软件及应用_IT/计算机_专业资料。Linux 程序设计实验三一、 实验目的 1. 对理论课中学习的进程有进一步的理解,练习使用 ps 命令常看进程;......
Linux操作系统实验三
软件包管理与进程管理 网络 132 2013122836 张凤霞 评语: 成绩: 指导教师: 批阅时间: 年月日 《网络操作系统》实验报告 -1- 一、目的与要求 1、掌握 linux ......
Linux 实验三:SHELL编程
二、实验题目实验三 SHELL 编程(二)三、实验要求 1、在 Linux 环境...
LINUX实验 实验三:熟悉LINUX常用命令
实验三 熟悉 Linux 常用命令 一、背景知识 使用 Linux 系统时,用户...
linux实验项目三备份与更新
linux实验项目三备份与更新_计算机软件及应用_IT/计算机_专业资料。实验项...
Linux实验三BootLoader实验
Linux实验三BootLoader实验_计算机软件及应用_IT/计算机_专业资...
Linux实验3
年级: 实验室号__ 成绩: 计算机号 实验三 一、 实验目的和要求 用户管理 1) 掌握在 Linux 系统下利用命令方式实现用户和组的管理; 2) 掌握批量创建用户的方法......
linux实验三
linux实验三_计算机软件及应用_IT/计算机_专业资料。淮海工学院计算机工程...
大三linux实验报告实验一
大三linux实验报告实验一_计算机软件及应用_IT/计算机_专业资料 4人阅读|次下载 大三linux实验报告实验一_计算机软件及应用_IT/计算机_专业资料。 ...
实验三 Linux常用命令
实验三 完成时间: 完成时间:实验目的: 一. 实验目的: Linux 常用命令 姓名: 姓名: 1. 掌握 Linux 基本目录、文件命令的使用方法; 2. 熟悉 Linux 操作环境。...
Linux实验三
Linux实验三_电脑基础知识_IT/计算机_专业资料。西北农林科技大学Linu...
Linux实验三
Linux实验三_计算机软件及应用_IT/计算机_专业资料。关于Linux的实验...