linux操作系统环境下的c程序开发

linux操作系统环境下的c程序开发

ID:20434643

大小:65.86 KB

页数:7页

时间:2018-10-12

linux操作系统环境下的c程序开发_第1页
linux操作系统环境下的c程序开发_第2页
linux操作系统环境下的c程序开发_第3页
linux操作系统环境下的c程序开发_第4页
linux操作系统环境下的c程序开发_第5页
资源描述:

《linux操作系统环境下的c程序开发》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、西南科技大学计算机科学与技术学院实验报告实验名称Linux操作系统下C稈序设i十实验地点实验日期指导教师学生班级学生姓名学生学号提交曰期-、实验目的熟悉字符模式下的C程序编译和调试环境,基本掌握Linux字符模式下的编译工具和调试工具的使用二、实验题目Linux操作系统下C程序设计三、实验设计■练习实验指导书上的三种编译方法和过程直接编译静态庠共享库■练习实验指导书上的调试过程(写出对实验过程的设计,包括步骤、方法等)四、实验记录当前文件夹:xxoo409612月xxoo409612月xxoo13611

2、月XXOO28411月drwxrwxr-x2xxoodrwxr-xr-x7xxoo-rw-rw-r--1xxoo-rw-rw-r--1xxoo513:56./512:23"/2818:44calc.c2818:44natn.c1、直接编译xxoo@K46CM:~/桌面/ccc$gccmatn^ccalc.c,omain2、静态库将calc.c编译成中间文件calc,oxxoo@K46CM:~/桌面/ccc$gcc-ccalcic生成静态库文件,添加calc.o到静态库中,xxoo@K46CM:〜/桌面/

3、ccc$a「•「TAbcalc.acalc.o命令行中,-rlibcalc.a参数表示建立静态库,名字为libcalc.ao接下來,使用如下命令行:XXOO0K46CM卜/:面/ccc$Cjccmain.cItbcalc.a-omain-1参数可以指定库名称,这里calc表示使用库libcalc.a,库名字前面的lib和后面的.a被省略掉了,遵从了命名法。3、共享库首先,编译calc,c为calc.0,使用命令打:乂乂。0@1<46〔1^:~/杲曲/〔〔〔$gcc-c-fpiccalc.c命令行屮,_f

4、pic指定calc.o力可重分配地址属性,pic是positionindependencecode的缩写0接卜来使用calc.o生成共享库calc,so:xxoo@K46CM:~/桌面/ccc$gcc-sharedcalc*o-ocalc*so最后编译main,c,链接生成的共享座:xxoo@K46CM:~/桌面/ccc$gccnain>ccalc.so-omain4、调试过程耍完成源代码级别的调试,需耍在编译时指定将调试倍息添加到可执行文件屮,也就是说可以在调试吋看到程序的函数名、变量名等,而不是内存

5、地址。gcx命令的-g参数可以完成这个功能。例如使用如下命令:xxoo@K46CM:~/桌面/ccc$gccnatn>ccalc>c-omain-g用GDB开始凋试xxoo@K46CM:~/桌面/ccc$gdbmain这里如果没有写带有调试信息的可执行文件名时,可以再下面用filefilename显示其当前执行后面的源代码(默认含有主函数的代码):bdg(123list#includetntcalc(int);tntnain(intargc,char*argv[])加上文件名,可显示其

6、他包含的文件:(gdb)listcalc1#tnclude2tntcalc(tntUn)设置断点(此时为listmain):(gdb)break7Breakpoint2at0x400611:filemain.c,line1.(gdb)infobreakpointsNunTypeDtspEnbAddressWhat2breakpointkeepy0x0000000000400611inmainatnain.c:7开始执行:(gdb)runStartingprogram:/home/xxo

7、o/桌面/ccc/natnmainBreakpoint2,main(a「gc=2,argv=0x7fffffffdel8)atmain.c:77scanf(H%inilnput);到断点这一行,继续:(gdb)next48whtle(tlnput<0)以下继续next,直到有函数调用的这一行,step可以进入函数:13tOutput=calc(tlnput);(gdb)stepcalc(tln=5)atcalc乂:44inti=0,tout=0;此时可以一直step/nextK去直到函数调用完成,或者r

8、eturn直接返冋主函数:(gdb)returnMakecalcreturnnow?(yorn)y#00x000000000040065atnmain(argc=2,argv=0x7fffffffdel8)atnain*c:1313tOutput=calc(tlnput);在调试中可以杳看某个变量的值:(gdb)printtlnput$1=5也讨以改变其值:(gdb)setvariabletlnput=llll(gdb)printtlnpu

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

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

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