实验三 静态程序库和动态程序库构造.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 软件学院 软件构造 课程实验报告 2014 ~2015学年第 二 学期 2013 级 软件工程 专业 班级: 2013190 学号: 201319014 姓名: 杨景程 实验三静态程序库和动态程序库的构造 一、实验目的 1、了解C语言程序工具链中各个编译工具使用方法 2、掌握静态程序库构造与使用方法 3、掌握动态程序库构造与使用方法 二、实验环境与实验要求 1.PC机一台,VC6.0 2、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作; 3、能认真独立完成实训内容; 4、实验后做好实验总结,根据实验情况完成总结报告。 三、实验内容 1、参照教材第四章4.1.2节内容,编写两个源文件main.c和hello.c和一个头文件hello.c 理解头文件中宏定义与函数说明的含义,利用参数gcc–E查看预编译阶段源文件中内容; 利用参数gcc–S查看开发人员不可见的.s汇编文件 对生成的目标文件进行摘要查看和函数原型查看 对生成的可执行程序进行摘要查看 两个源文件main.c和hello.c和一个头文件hello.c gcc–E查看预编译阶段源文件中内容 gcc–S查看不可见的.s汇编文件 2、静态程序库构造与使用方法 按照教材4.1.6要求,编写sqrt.csine.ccosine.ctan.c四个功能文件,构建静态程序归档文件 利用ar命令结合-rs参数建立静态程序库mymath,a 设计主函数main.c并结合静态程序库mymath.c构造可执行程序prog 3、静态程序库构造与使用方法 利用位置无关代码参数-fPIC编译并生成各功能文件目标代码 使用-shared选项将生成的位置无关的目标代码,创建动态程序库libmymath.so 使用gcc–oprogmain.c–L.lmymath命令构造可执行程序prog 利用ldd命令对prog程序在载入内存时加载的动态程序库进行检查 对动态程序库文件进行调整,保证prog在运行时能够调用到.so文件 四、实验过程 五、分析与思考 1.c语言的编译工具有哪些?这些工具都具有什么特点? (1)TC经典编译器:Dos平台软件,简单易学,系统体积小。 (2)VC++6.0:功能强大注意支持C++,是Windows平台上的C++编程环境,学习VC要了解很 多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大 (3)GNUCompilerCollection或称GCC:GCC是一个交叉平台的编译器,目前支持几乎所有主流 换,CPU处理器平台,它可以完成从C、C++、ObjectiveC等源文件向运行在特定cpu硬件上 的目标代码的转GCC不仅功能非常强大,结构也异常灵活,便携性(protable)与跨平台支 持(cross-plantform.support)特性是GCC的显着优点,目前编译器所能支持的源程序的 格式如下表所示。 2、静态程序库和动态程序库与可执行程序进行链接时有什么不同? 静态程序库只是多个目标文件的归档文件,可以在需要时链接到可执行程序,对于动态程序库的情 况,链接过程要更为复杂,特别是你必须允许链接过程发生在运行时,而不是程序编译时,这就要 求改变编译顺序。 六、实验总结 通过这次试验,我知道了程序载入内存并执行的方式,对软件构造的设计有重大的影响,可执行 程序在载入内存并执行时,它可以包含原生机器码指令,也可以是有待运行时解释或编译的字节 码指令,静态程序库在构造过程中与自主开发的源码进行链接,而动态程序库则在载入内存后在 与程序链接。

文档评论(0)

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

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

1亿VIP精品文档

相关文档