网站大量收购独家精品文档,联系QQ:2885784924

第3课 实验1:GNU开发环境建立实验.pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验 1 Linux GNU 开发环境建立实验 1.1 实验目的 • 练习由源码编译软件的方法 • 掌握 gcc 编译器的建立过程。 1.2 实验设备 • 硬件:PC 机; • 软件:RedHat 9.0 操作系统,GNU 工具链。 1.3 实验内容 • 练习通过源码编译方式生成新版本 gcc 编译器 • 使用新版本 gcc 编译器编译生成可执行文件 1.4 实验原理 1.4.1 GNU 工具链的简介 GNU 工具链(GUN Tools)全称(GNU Development Toolchains),GNU 既支持本地程序 开发,又支持交叉编译。GNU 开发工具包括完备的工具链—GCC、binutils、gdb、GNU make、 patch、CVS、开发库等。 1.4.2 GNU 各个组件的介绍 GCC 属于 GUN 工具链中的编译开发工具,它可以把源程序编译为可执行文件。GCC 是支 持支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL 语言, 以及支持函数式编程和逻辑编程的 Mercury 语言,等等的编译器。GCC 是可以在多种硬体 平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高 20%~30%。GCC 主要包括: • cpp:GNU C编译器的预处理器 • gcc:符合 ISO 标准的C 编译器 • g++:基本符合 ISO 标准的 C++编译器 • gcj:GCC的java 前端 • gnat:GCC的 GNU ADA 95 的前端 binutils是一组二进制工具程序集合,是辅助 GCC 的主要软件,其中主要包括: • as:GNU 汇编器 • ld:GNU 链接器 • ar:创建归档文件,向库中添加/提取 obj 文件 • nm:列出obj 文件中的符号 • objcopy:复制和转化 obj 文件 • objdump:显示对象文件的信息 • ranlib:根据归档文件中的内容建立索引 • readelf:显示 elf 格式执行文件中的各种信息 • size:显示object 文件和执行文件各段的总大小 • strings:显示文件中可以打印的字符 • strip:去掉执行文件中多余的信息(如调试信息) • gprof:用来显示图表档案数据 gdb 是 GNU 的调试器。可以用来调试 C、C++和其他语言编写的程序。如加一些图形前端 (如 DDD),可以在图形环境下调试程序。 GNU make是一个用来控制可执行程序生成过程、从其他源码文件中生成可执行程序的程 序。它允许用户生成和安装软件包,而无需了解其生成、安装软件包的过程。 diff/diff3/sidff是GNU 中比较文本差异的工具,也可以用来生成补丁。 Patch是GNU 中的补丁安装程序,可根据 diff生成的补丁来更新程序。 CVS 是版本控制系统。用于管理开发版本和控制在多位作者间同时编辑源码文件。 1.4.3 GNU 常用开发工具的介绍和使用 上面我们对 GNU 开发工具链做了概述,下面我们再给出 linux下常用开发工具的介绍和 使用。 1.vi(vim) vi 是linux 下一种功能强大的,快速命令驱动的全屏幕编辑器,可以类比 DOS的 edit。 vi 有三种操作模式:一是命令模式(或称指令模式),在此模式下的按键当作指令来处理; 一种是输入模式(或称插入模式),此模式的按键作为真正的输入;另外一种是底行模式, 在该模式下,光标位于屏幕的底行。用户可以进行文件保存或退出操作,也可以设置编译环 境,如寻找字符串、列出行号等。初始启动 vi时处于命令模式。表 1.1 中列出了vi(vim) 常用的命令。 命 令 介 绍 光标移动类命令 移动输入光标 h 将光标向左移动一列 j 将光标向下移动一行 k 将光标向上移动一行 l 将光标向右移动一列

文档评论(0)

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

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

1亿VIP精品文档

相关文档