实验四linux下c语言使用、编译与调试实验2

实验四linux下c语言使用、编译与调试实验2

ID:8921197

大小:59.00 KB

页数:8页

时间:2018-04-12

实验四linux下c语言使用、编译与调试实验2_第1页
实验四linux下c语言使用、编译与调试实验2_第2页
实验四linux下c语言使用、编译与调试实验2_第3页
实验四linux下c语言使用、编译与调试实验2_第4页
实验四linux下c语言使用、编译与调试实验2_第5页
资源描述:

《实验四linux下c语言使用、编译与调试实验2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验四:LINUX下C语言使用、编译与调试实验一、目的:1、练习并掌握Linux提供的vi编辑器来编译C程序2、学会利用gcc、gdb编译、调试C程序3、学会使用make工具二、内容1、编写C语言程序,用gcc编译并观察编译后的结果,运行生成的可执行文件。2、利用gdb调试程序。3、学习编写makefile,并进行编译。三、操作1、文件编辑器vi进入vi,直接执行vi编辑程序。例:#vitest.c显示器出现vi的编辑窗口,同时vi会将文件复制一份至缓冲区(buffer)。vi先对缓冲区的文件进行编辑,保留在磁盘中的文件则不变

2、。编辑完成后,使用者可决定是否要取代原来旧有的文件。1)vi的工作模式(1)输入模式输入以下命令即可进入vi输入模式:a在光标之后加入资料A在该行之末加入资料i在光标之前加入资料I在该行之首加入资料o新增一行于该行之下O新增一行于该行之上(2)命令模式在输入模式下,按ESC可切换到命令模式。命令模式下,可选用下列指令离开vi::q!离开vi,并放弃刚在缓冲区内编辑的内容:wq将缓冲区内的资料写入磁盘中,并离开viZZ同wq:x同wq:w将缓冲区内的资料写入磁盘中,但并不离开vi:q离开vi,若文件被修改过,则要被要求确认是否放

3、弃修改的内容,此指令可与:w配合使用(3)命令模式下光标的移动h左移一个字符j下移一个字符k上移一个字符l右移一个字符0(零)移至该行的行首$移至该行的行尾^移至该行的第一个字符处H移至窗口的第一行M移至窗口中间那一行L移至窗口的最后一行G移至该文件的最后一行W,w下一个单词(W忽略符号)B,b上一个单词(B忽略符号)(4)命令模式下的编辑命令dd删除当前光标所在行yy复制当前光标所在行p将复制的内容粘贴在光标所在的位置后P将复制的内容粘贴在光标所在的位置前x删除当前光标字符X删除当前光标之前字符u撤消·重做2、GNUC编译器

4、1)使用gcc通常后跟一些选项和文件名来使用gcc编译器。gcc命令的基本用法如下:gcc[options][filenames]命令行选项指定的编译过程中的具体操作2)gcc常用选项当不用任何选项编译一个程序时,gcc将建立(假定编译成功)一个名为a.out的可执行文件。选项含义:-oFILE指定输出文件名,在编译为目标代码时,这一选项不是必须的。如果FILE没有指定,默认文件名是a.out.例如,#gcctest.c编译成功后,当前目录下就产生了一个a.out文件。也可用-o选项来为即将产生的可执行文件指定一个文件名来代替

5、a.out。例如:#gcc–ocountcount.c此时得到的可执行文件就不再是a.out,而是count。-cGCC仅把源代码编译为目标代码。默认时GCC建立的目标代码文件有一个.o的扩展名。-E对文件进行预处理-S对文件进行编译,生成汇编代码。-O对源代码进行基本优化。这些优化在大多数情况下都会使程序执行得更快。-g在可执行程序中包含标准调试信息。-Wall允许发出GCC能提供的所有有用的警告,也可以用-W(warning)来标识指定的警告。-lname链接静态库-Ldir库文件的搜索路径3)执行文件格式:./可执行文件

6、名例:#./a.out#./count4)例子mypow.c:定义mypow()函数unsignedlonglongmypow(unsignedintx,unsignedinty){unsignedlonglongres=1;if(y==0)res=1;elseif(y==1)res=x;elseres=x*mypow(x,y-1);returnres;}powtest.c:调用mypow()函数#include#includeintmain(intargc,char*argv[]){un

7、signedintx,y;unsignedlonglongres;if((argc<3)

8、

9、(sscanf(argv[1],"%u",&x))!=1

10、

11、(sscanf(argv[2],"%u",&y))!=1){printf("Usage:powbaseexponent");exit(1);}res=mypow(x,y);printf("%u^%u=%u",x,y,res);return0;}编译过程:#gcc-cmypow.c#arrcsvlibpow.amypow.oa-mypow.o#gcc-opowtestpo

12、wtest.c-L.-lpow#./powtestUsage:powbaseexponent#./powtest2102^10=10243、gdb调试工具1)调试编译代码为了使gdb正常工作,必须使你的程序在编译时包含调试信息。调试信息里包含你程序里的每个变量的类型和在可执行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。