- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
深圳大学Linux上C程序编译,调试和工程文件管理实验报告,你懂的.
深 圳 大 学 实 验 报 告
课程名称: Linux操作系统
实验项目名称: Linux上C程序编译,调试和工程文件管理
学院: 计算机与软件学院
专业: 软件工程
指导教师: 冯禹洪
报告人: 学号: 班级:
实验时间: 2014/12/26
实验报告提交时间: 2014/12/27
教务处制一、 实验目标:
熟悉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
文档评论(0)