深圳大学linux课程大作业,嘻嘻你懂的.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
深 圳 大 学 实 验 报 告 课程名称: Linux操作系统 实验项目名称: Linux上C程序编译,调试和工程文件管理 学院: 计算机与软件学院 专业: 软件工程 指导教师: 冯禹洪 报告人: 不好说 学号: 班级: 1班 实验时间: 1 实验报告提交时间: 1 教务处制 一、 实验目标: 熟悉Linux上C程序设计环境,包括以下内容: 1. 联机帮助man命令 2. 编译工具gcc的使用 3. 熟悉使用gdb来调试程序 4. 熟悉C工程文件的管理工具makefile 二、实验环境与工件 湖边Linux实验室”选项是告诉gcc产生的代码不要包含对函数和变量具体内存位置的引用。 以上命令将获得目标文件message.o,使用以下命令建立共享函数库message: 使用1.3获得的共享函数库来编译main.c文件 设置共享函数库有哪些信誉好的足球投注网站路径 运行程序并附上结果 构建静态可执行程序 $gcc –c message.c $ar –crv libmsg.a message.o $gcc –o main main.c –L./ -lmsg $./main 运行以下两个命令并截图说明结果: $ldd goodbye $ldd main $ls –l goodbye main 答:main和goodbye的不同点在于代码被载入的时刻不同。main使用的是静态库,代码在编译过程中已经被载入可执行程序,因此体积较大;Goodbye使用的是动态库,代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。 /*附加题:经观察,如果用ubuntu, main 和googbye的大小在一些发行版本下没有区别, 如果实验如此,请尝试解释这一现象。附加题目,平时成绩+5分,超过40分不算。*/ 发现两个文件大小不是一样的 图3-4中的reverse程序是有bug的,请使用gdb去观察程序的行为,对关键行为截图说明,定位错误(截图说明)并修正程序bug。附上修正的程序及其运行结果。(40分) 图3. reverse.h头文件 图4. reverse1.c源程序 1 /* reverse.c */ 2 #includestdio.h 3 #includereverse.h 4 /*********************************/ 5 int reverse(str) 6 { 7 char *str; 8 int i; 9 int len; 10 char c; 11 len=strlen(str); 12 for(i=0;ilen/2;i++) 13 { 14 c=*str+i; 15 *(str+l)=*str+len-i-1; 16 *(str+len-i-1)=c; 17 } 18 } 19 int main() 20 { 21 char str[1024]; 22 printf(Give me a word to reverse:); 23 scanf(%s,str); 24 reverse(str); 25 printf(REVERSED:%s\n,str); 26 } 修改明显的错误后如下: 继续修改:加入头文件 1 /* reverse.c */ 2 #includestdio.h 3 #includereverse.h 4 #includestring.h 5 /*********************************/ 6 int reverse(char *str) 7 { 8 int i; 9 int len; 10 char c; 11 len=strlen(str); 12

文档评论(0)

三哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档