实验报告vi的使用和gccgdb的使用

合集下载

Linux的VI,GCC,GDB,Makefile等简单应用

Linux的VI,GCC,GDB,Makefile等简单应用
例:
hello:main.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
等价于
hello:main.o func1.o func2.o
gcc $^ -o $@
&&&&&&&&&&&&&&&&&&&&&【杂项】&&&&&&&&&&&&&&&&&&&&&
-->".PHONY"将"clean"目标声明为伪目标
&&&&&&&&&&&&&&&&&&&&&【添加变量】&&&&&&&&&&&&&&&&&&&&&
例:
hello:main.o func1.o func2.o
gcc main.o func1.o func2.o -o hello
若采用变量,则:
x. -Wall 生成所有警告信息
xi. -w 不生成任何警告信息 例如:gcc -w hello.c -o hello

2020-Linux文版-实验3-Vi编辑器的使用及C编程-学生实验报告模板-P

2020-Linux文版-实验3-Vi编辑器的使用及C编程-学生实验报告模板-P

实验报告课程名称: Linux操作系统实验名称:实验3 Vi编辑器的使用及C编程学生姓名:孙文浩班级计算机 141 学号学院(系):信息数理学院指导教师:庄丽华实验时间: 2016 年 9 月 30 日实验成绩:实验3 Vi编辑器的使用及C编程一、实验要求(1)掌握Vi的三种运行模式及切换方法;(2)掌握使用Vi的各种操作命令进行文本文件的编辑;(3)用Vi编写Linux下C程序,掌握gcc编译。

二、实验内容和实验步骤1、vi编辑器的使用【操作要求1】首先用合法用户名登陆系统,不保存直接退出。

【操作步骤】(1)在系统提示符下,输入vi,按回车键,进入vi的界面。

(2)输入:q!不保存直接退出。

【操作要求2】新建文件f1并编辑一段文字进行保存。

【操作步骤】(1)在系统提示符下输入vi f1,按回车键。

(2)看到vi的界面,输入i,左下角会出现“插入”。

(3)输入一段文字。

10 Basic Linux Networking and Monitoring Commands You Should KnowI have listed down 10 basic Linux networking and monitoring commands which eachLinux user should know. These Linux basic networking and monitoring commands like hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool are used for viewing the IP address of the Linux server, managing Linux server network adapter configuration, making network connections among Linux servers over telnet andethernet, Linux server information etc. Lets have a look on the following Linux networking and monitoring commands.(4)按Esc键,进入命令模式。

Linu 系统编程实验gccgdb的使用以及Makefile文件的编写

Linu 系统编程实验gccgdb的使用以及Makefile文件的编写

实验二:gcc、gdb、Makefile的使用●实验目的:(一)学会使用gcc编译器(二)学会gdb调试器的使用(三)学会编写Makefile●实验要求:(一)编写一应用程序,使用gcc进行编译,并分别使用-o,-g,-static,-O2等选项(二)编写一应用程序,使用gdb调试,调试中使用到该小节所介绍的所有命令(三)实现一应用程序,该程序有两个c文件构成,使用makefile来完成对该程序的编译●实验器材:软件:安装了Linux的vmware虚拟机硬件:PC机一台●实验步骤:(一)gcc编译器1、先用vi编辑hello.c文件,内容如下:2、gcc指令的一般格式为:gcc [选项] 要编译的文件 [选项] [目标文件]例:使用gcc编译命令,编译hello.c生成可执行文件hello,并运行hello上面的命令一步由.c文件生成了可执行文件,将gcc的四个编译流程:预处理、编译、汇编、连接一步完成,下面将介绍四个流程分别做了什么工作3、-E选项的作用:只进行预处理,不做其他处理。

例:只对hello.c文件进行预处理,生成文件hello.i,并查看通过查看可以看到头文件包含部分代码#include <stdio.h>经过预处理阶段之后,编译器已将stdio.h的内容贴了进来。

4、-S选项的使用-S选项的作用:只是编译不汇编,生成汇编代码例:将hello.i文件只进行编译而不进行汇编,生成汇编代码hello.s5、-c选项的使用-c选项的作用:只是编译不连接,生成目标文件.o例:将汇编代码hello.s只编译不链接成hello.o文件6、将编译好的hello.o链接库,生成可执行文件hello7、-static选项的使用-static选项的作用:链接静态库例:比较hello.c连接动态库生成的可执行文件hello和链接静态库生成的可执行文件hello1的大小可以看到静态链接库的可执行文件hello1比动态链接库的可执行文件hello要大的多,他们的执行效果是一样的8、-g选项的使用-g选项的作用:在可执行程序中包含标准调试信息例:将hello.c编译成包含标准调试信息的可执行文件hello2带有标准调试信息的可执行文件可以使用gdb调试器进行调试,以便找出逻辑错误9、-O2选项的使用-O2选项的作用:完成程序的优化工作例:将hello.c用O2优化选项编译成可执行文件hello3,和正常编译产生的可执行文件hello进行比较(二)gdb调试器1、先用vi编辑文件test.c用于gdb调试器调试,内容如下#include <stdio.h>int main(void){int sum(int sum);int i,result=0;sum(100);for(i=1;i<=100;i++){result+=i;}printf("The sum in main function is %d\n",result);return 0;}int sum(int num){int i,n=0;for(i=0;i<=num;i++){n+=i;}printf("The sum in sum function is %d\n",n);}2、将test.c文件编译成包含标准调试信息的文件test3、启动gdb进行调试可以看到gdb启动界面中显示了gdb的版本、自由软件等信息,然后进入了有”gdb”开头的命令行界面4、l(list)命令l命令用于查看文件可以看到每行代码面前都有对应的行号,这样方便我们设置断点。

实验二 GCC 及GDB的使用

实验二  GCC 及GDB的使用

实验二GCC 及GDB的使用一、实验目的和要求a)掌握VI编译环境。

b)掌握GCC编译命令。

c)掌握多个文件共同编译方法。

d)掌握GDB调试命令。

二、实验内容和原理(可参照课件第五章)a)在VI编辑器里编写简单的“hello,world,I am 13050141XX XXX”,利用GCC编译为可执行文件,执行,观察运行结果。

b)在VI编辑器里编写多个文件(至少两个,其中一个为主程序,一个为需要调用的子程序),为其书写头文件,共同编译为可执行文件,执行,观察运行结果。

学习书写MAKEFILE文件,编译,执行,观察结果。

c)编写循环结构的程序,利用GCC 编译(加参数-g)为可执行文件,利用GDB调试,学习GDB调试命令。

三、实验环境a)硬件:PC机b)软件:LINUX操作系统、虚拟机四、实验步骤vi hello.c i:C语言编程Esc :wq gcc hello.c gdb file a.out run a实验三交叉编译环境配置一、实验目的和要求熟悉 Linux 开发环境,学会基于S3C2410 的Linux 开发环境的配置和使用。

使用Linux 的armv4l-unknown-linux-gcc 编译,使用基于NFS 方式的下载调试,了解嵌入式开发的基本过程。

二、实验内容a)配置网络,包括配置IP 地址、NFS 服务、防火墙。

b)安装交叉编译器c)配置超级终端,下载文件到目标机上。

三、实验设备及工具(包括软件调试工具)硬件:UP-TECH S2410/P270 DVP 嵌入式实验平台、PC 机Pentium 500 以上, 硬盘10G 以上。

软件:REDHAT LINUX 9.0+超级终端+ARM-LINUX 开发环境四、实验步骤(所有的内容截图)1、虚拟机设置为桥接模式。

2、配置IP地址,设置为192.168.0.xxx参照实验指导书图1.4.1-1.4.3. 自己截图,说明3、关闭防火墙,参照实验指导书图1.4.4自己截图,说明4、打开桌面超级终端(HyperTerminal),配置COM1,115200波特率,8N1,实验箱插上电源线,网线与主机相连,串口线与主机串口1相连,开机,看bootloader程序VIVI是否自动加载,回车后进入命令提示符。

实验二 Linux常用命令和vi,gdb的使用

实验二 Linux常用命令和vi,gdb的使用

实验二Linux常用命令和vi,gdb的使用【实验内容】本课程要求学员对Linux基本操作命令有一定了解和掌握。

下面列出的一些常用命令作为参考。

最好针对每一个都能亲自练习、掌握。

【实验平台】PC机【实验步骤】1.ls 命令----------------------------------------------------------------------ls 以默认方式显示当前目录文件列表ls –a 显示所有文件包括隐藏文件ls –l 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行----------------------------------------------------------------------2.cd 命令cd dir 切换到当前目录下的dir目录cd .. 切换到到上一级目录cd ~ 切换到用户目录,比如是root用户,则切换到/root下----------------------------------------------------------------------3.rm 命令rm file 删除某一个文件rm -rf dir 删除当前目录下叫dir的整个目录----------------------------------------------------------------------4.cp 命令cp source target 将文件source 复制为targetcp –av soure_dir target_dir 将整个目录复制,两目录完全一样cp –fr source_dir target_dir 将整个目录复制,并且是以非链接方式复制,当source目录带有符号链接时,两个目录不相同----------------------------------------------------------------------5.mv命令mv source target 将文件或者目录source更名为target----------------------------------------------------------------------6.diff命令diff dir1 dir2 比较目录1与目录2的文件列表是否相同,但不比较文件的实际内容,不同则列出diff file1 file2 比较文件1与文件2的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的----------------------------------------------------------------------7.echo 命令echo message 显示一串字符8。

实验3 vi工具的使用

实验3 vi工具的使用

实验3 利用vi编辑器运行C语言程序一、实验要求熟悉并掌握vi三种工作模式之间的转换方法。

掌握新建和保存文件,进行文本插入与删除的操作方法。

掌握编辑并运行C语言程序的方法。

二、实验内容C语言运行时需要gcc编译器,提供了C,C++,JAVA等库函数。

1 查看gcc编译器是否安装[root@localhost ~]# which gcc //如果提示/usr/bin/gcc说明已经安装,否则就没有安装2 安装gcc编译器方法(一):利用yum安装配置yum源[root@localhost ~]#cd /etc/yum.repos.d[root@localhostyum.repos.d]# ll总用量8-rw-r--r--. 1 root root 125 4月7 21:58 packagekit-media.repo-rw-r--r--. 1 root root 529 5月31 2012 rhel-source.repo[root@localhostyum.repos.d]# vi rhel-source.repo //将该文件修改如下在末行模式下保存并退出:wq[root@localhostyum.repos.d]#cd ~[root@localhost~]#mount /dev/sr0 /mnt[root@localhost~]#cd /mnt/Packages[root@localhostPackages]# yum install gcc* //安装系统提供的全部语言的工具包[root@localhostPackages]#cd ~3 vi编辑hello.c并用gcc编译运行[root@localhost ~]# vi hello.c //如果该文件存在,则进入该文件,否则,创建后进入在末行模式下保存并退出:wq4 vi的插入模式与末行模式(1)插入模式,编辑文件:按A在行尾后补;按a在当前字符处的下一个位置;按o在当前行的下面插入一个新行;按O在当前行的上面插入一个新行;按$快速移动到行尾(2)末行模式,保存、退出Vim:按: 键可以进入Ex,屏幕状态行上有一个:标志;按w保存文件;按wq保存退出;按q!强制不保存退出;按wq! 强制保存退出;按x 保存退出;(3)使用命令模式光标移动:按字符移动:方向键按一下移动一个字符;数字,方向移动:向这[个方向移动1个字数倍个;按单词移动:w、b按句子移动:)、(按段落移动:}、{跳到第几行:XG,X是行数建议大家用:行数Ctrl-f向前、向下翻页Ctrl-b向后、向上翻页G移至文档结尾;gg移至文档首删除内容:x 刪除光标所在处字符,在中文指一個中文字。

实验一 gcc和gdb的使用

实验一  gcc和gdb的使用

3.执行当前目录下编译生成的可执行文件,使 用以下格式: ./可执行文件名 ./a.out
也可以使用以下方法编译源代码文件.生成自 命名的可执行文件; gcc源文件-o自命名的文件名 例如:gcc test.c –o test
4.gdb简介 Linux包含了一个叫gdb的GNU调试程序。gdb是一个 用来调试c和c十十程序的强力调试器。它使用户能在 程序运行时观察程序的内部结构和内存的使用情况。 以下是gdb所提供的一些功能: 能监视程序中变量的值; ·能设置断点以使程序在指定的代码行上停止执行; ·能一行行地执行代码。
在命令行上键入gdb并按回车键就可以运行gdb 了, 如果一切正常的话,gdb将被启动,并且将 在屏幕上显示类似的内容:
实验内容 将下面的程序输入到一个文件名字为 test.c的磁盘文件中,利用调试程序找出 其中的错误,修改后存盘。该程序的功 能是显示一个简单的问候语,然后用反 序方式将它列出。
实பைடு நூலகம்一 gcc和gdb的使用
实验目的 1.掌握Linux操作系统下最常用的c 语言编译器gcc的使用 2.掌握Linux操作系统下最常用的 代码调试器gdb的使用; 3.掌握调试代码的基本方法,如 观察变量、设置断点等。
gcc简介 gcc 是Linux操作系统下一种常用的c语言编译器。 1.使用文本编辑器编写完源程序,保存成 .c为扩展名的c语言源代码文件。 2.返回到shell界面,使用gcc对源程序进行编泽 其命令为: gcc 源程序 例 : gcc test.c 如果源代码没有语法错误,使用以上命令编译,会在 当前目录下生成一个名为a.out的可执行文件。如果源代码 有语法错误,则不会生成任何文件,gcc编译器会在shell 中提示错误的地点和类型。(可使用gdb来调试)

Linux系统编程实验二:gcc、gdb的使用以及Makefile文件的编写

Linux系统编程实验二:gcc、gdb的使用以及Makefile文件的编写

实验二:gcc 、gdb 、Makefile 的使用实验目的:(一) 学会使用gcc 编译器 (二) 学会gdb 调试器的使用 (三) 学会编写 Makefile实验要求:(一) 编写一应用程序,使用 gcc 进行编译,并分别使用-o ,-g ,-static ,-02等选项 (二) 编写一应用程序,使用 gdb 调试,调试中使用到该小节所介绍的所有命令 (三) 实现一应用程序,该程序有两个 c 文件构成,使用 makefile 来完成对该程序的编译实验器材:软件:安装了 Linux 的vmware 虚拟机 硬件:PC 机一台实验步骤:(一) gcc 编译器1先用vi 编辑hello.c 文件,内容如下:#include <stdio,h>int nain (void ){printfC'hello world\n ,1); return 0;}2、gcc 指令的一般格式为:gcc [选项]要编译的文件[选项][目标文件]例:使用gcc 编译命令,编译 hello.c 生成可执行文件 hello ,并运行hello上面的命令一步由.c 文件生成了可执行文件,将 gcc 的四个编译流程:预处理、编译、汇编、连接一步完成,下面将介绍四个流程分别做了什么工作3、-E 选项的作用:只进行预处理,不做其他处理。

例:只对hello.c 文件进行预处理,生成文件 hello.i ,并查看[root@localhost gcc]# gcc ・E hello.c -o hello.i [root@localhost gcc]# Is hello hello.c hello t i通过查看可以看到头文件包含部分代码 #include <stdio.h>经过预处理阶段之后,编译 器已将stdio.h 的内容贴了进来。

4、-S 选项的使用-S 选项的作用:只是编译不汇编,生成汇编代码 例:将hello.i 文件只进行编译而不进行汇编,生成汇编代码 hello.s[root (alocalhost gcc]# gcc -S hello,i -o hello ■与[rootfalocalhost gcc]# Is lello hello.c hello.i hello.s [root (3localhost[root@localhost gcc]# [root@localhost gcc]# [root@localhost gcc]# hello world [root@lo 匚alhost gcc]# vi hello^c gcc hello.c -o hello ■/hellogcc]# |5、-c选项的使用-c 选项的作用:只是编译不连接,生成目标文件 .0 例:将汇编代码hello.s 只编译不链接成 hello.o 文件[rootfalocalhost gcc]# gcc -c hello.5 -o hello.o [rootfalocalhost gcc]# Ishello hello.c hello.i hello.o hello ・56、将编译好的hello.o 链接库,生成可执行文件 hello[roottalocalhost gcc]# [root@localho5t gcc]# hello hello,c hello [root (alocalhost gcc]#hello world gcc hello.o -o hello Is i hello.o hello.s• /hello 7、-static 选项的使用-static 选项的作用:链接静态库例:比较hello.c 连接动态库生成的可执行文件hellol 的大小hello 和链接静态库生成的可执行文件gcc]# gcc hello.c g 匚c]# gcc -stati 匚 gcc]# 11 -o hello hello ■匚-o hellol -rwxr- xr-x 1 root root 4641 J un -rwxr- xr-x 1 root root 605990 J un -rw- r- ._ p _ 1 root root 75 J un -rw- r- 1 root root 18880 J un -rw- r- 1 root root844 J un -rw - r-1 root root 416 J un1 03 47 hello 1 03 47 hellol 1 03 15 hello.t 1 03 27 hello.i 1 03 41 hello.o 1 03 35 helloes hellol 比动态链接库的可执行文件 hello 要大的多,他们的执行效果是一样的8、-g 选项的使用-g 选项的作用:在可执行程序中包含标准调试信息例:将hello.c 编译成包含标准调试信息的可执行文件hello2[root@localhost [root@localhost hello hello2 hellol hello.cgcc]# gcc -g hello-c -o hello2 gcc]# Is hello.i hello ・s hello.o带有标准调试信息的可执行文件可以使用gdb 调试器进行调试,以便找出逻辑错误9、-02选项的使用-02选项的作用:完成程序的优化工作例:将hello.c 用02优化选项编译成可执行文件 hello3,和正常编译产生的可执行文件hello 进行比较[rootfdlocalhost [root@localhost [root@localhost total 636可以看到静态链接库的可执行文件gcc]# gcc -02 hello-c gcc]# Ishello.c hellohello.i hello .5 gcc]# ./hello gcc]# ./hello3用于gdb 调试器调试,内容如下 #i nclude <stdio.h> int main( void)2、将test.c 文件编译成包含标准调试信息的文件test[root@localhost gdb]# gcc -g test. [root (alocalhost gdb]# Is test test3、启动gdb 进行调试[root@localhost [root@localhost hello hello2 hellal hello3[root@localhost hello world[rootOlocalhost hello world(二) gdb 调试器1先用vi 编辑文件test.co hello3 -o test[rootglocalhost gdb]# gdb testGNU gdb Red Hat Linux (6.5^25*el5rh)Copyright (匚)2006 Free Software Foundation, Inc .GDB is free software F 匚overed by the GNU General Publi 匚 License t and you 日「Ewelcome to change it and/or distribute copies of it und er certain conditions.Type "show copying" to see the conditions ・There is absolutely no warranty for GDB ・ Type "show wa rranty" for dEtails *This GDB was configured as "1386-redhat-linux*gnu"・・.Us ing host libthreaddb library "/^ib/i686/nosegneg/libth read db ・ so.1” ・ 在gdb 中可以设置多个断点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档