c语言开发环境构建及简单的c程序设计

实验x C语言开发环境构建及简单的C程序设计

一、实验目的

1、熟悉字符模式下的C程序编译和调试环境,基本掌握麒麟Linux字符模式下的编译工具和调试工具的使用;

2、本实验需要综合使用麒麟Linux基本文件命令、编辑器的使用,练习在麒麟Linux的字符模式下,编辑、编译及调试一个C程序的基本方法。

二、预备知识

1、GNU C编译器

目前Linux下最常用的C语言编译器是GCC(GNU Compiler Collection),它是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。GCC不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、Pascal、Modula-3和Ada等。gcc是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。

(1)使用GCC

通常后跟一些选项和文件名来使用GCC编译器。GCC命令的基本用法如下:

gcc [options] [filenames]

命令行选项指定的编译过程中的具体操作

(2)GCC常用选项

在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。Gcc编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数。

-c,只编译,不连接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。

-o output_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。

-g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。

-O,对程序进行优化编译、连接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。

-O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢。

很多的GCC选项包括一个以上的字符,因此必须为每个选项指定各自的连字符,并且就像大多数LINUX 命令一样不能在一个单独的连字符后跟一组选项。例如,下面的命令是不同的:

gcc -p-g test.c

gcc -pg test.c

第一条命令告诉GCC编译test.c时为prof命令建立剖析(profile)信息并且把调试信息加入到可执行文件里。第二条命令告诉GCC只为gprof命令建立剖析信息。

当不用任何选项编译一个程序时,GCC将建立(假定编译成功)一个名为a.out的可执行文件。例如,

gcc test.c

编译成功后,当前目录下就产生了一个a.out文件。

也可用-o选项来为即将产生的可执行文件指定一个文件名来代替a.out。例如:

gcc –o test test.c

此时得到的可执行文件就不再是a.out,而是test。

GCC也可以指定编译器处理步骤多少。-c选项告诉GCC仅把源代码编译为目标代码而跳过汇编和连接步骤。这个选项使用得非常频繁因为它编译多个C程序时速度更快且更易于管理。默认时GCC建立的目标代码文件有一个.o的扩展名。

(3)执行文件

格式: ./可执行文件名

例:./a.out

./test

2、gdb调试工具

在Linux平台下,GNU发布了一款功能强大的调试工具,称为gdb(GNU Debugger),该软件最早是由Richard Stallman编写的,gdb是一个用来调试C和C++程序的调试工具。其工作在命令模式下,需要通过输入命令来实现对应用程序的调试。通过此调试工具可以在程序运行时观察程序的内部结构和内存的使用情况。

关于gdb调试器,它是在终端,通过输入命令,进入调试界面的,在调试的过程中,也是通过命令来进行调试的。在终端中输入gdb命令,就可以进入到gdb调试的界面。

GDB主要能做下面4种事(以及由它们所支持的其他事情):

1)启动程序,指定可能影响程序运行的任何条件;

2)指定程序在一定条件下停止;

3)检查当程序停止时发生的事情;

4)通过改变程序中的某些条件,测试可能造成的软件错误,还可以由此学习其他的软件错误。

以下是利用gdb进行调试的步骤:

1、调试编译代码

为了使gdb正常工作,必须使你的程序在编译时包含调试信息。调试信息里包含你程序里的每个变量的类型和在可执行文件里的地址映射以及源代码的行号。gdb利用这些信息使源代码和机器码相关联。

在编

c语言程序构建,c语言开发环境构建及简单的c程序设计.doc相关推荐

  1. 瑞萨单片机c语言程序,瑞萨单片机开发环境系统用户手册.pdf

    RCC10J0005-0100 M16C R8C FOUSB/UART软件 用户手册 瑞萨单片机开发环境系统 Rev.1.00 发行:2006年10月27日 Keep safety first in ...

  2. c语言作业答案运行成功图片,桂林电子科技大学 C语言 程序设计 习题 答案(周信东) 实验1 C程序的运行环境和最简单的C程序设计...

    成绩:优 评语:做的很不错,加油. 批改时间:2013-11-2 11:52:54 批改老师: 实验1 C程序的运行环境和最简单的C程序设计 学号: 姓名: 实验日期:2013-10-20 1. 实验 ...

  3. arduino与java,Arduino具有与Java和C语言类似的IDE集成开发环境和图形化编程环境

    Arduino具有与Java和C语言类似的IDE集成开发环境和图形化编程环境 更多相关问题 听力原文:W: Hi, Steve, good to see you are up and around a ...

  4. Apache Spark学习:利用Eclipse构建Spark集成开发环境

    介绍了如何使用Maven编译生成可直接运行在Hadoop 2.2.0上的Spark jar包,而本文则在此基础上, 介绍如何利用Eclipse构建Spark集成开发环境 . 不建议大家使用eclips ...

  5. 《Spark核心技术与高级应用》——3.2节构建Spark的开发环境

    本节书摘来自华章社区<Spark核心技术与高级应用>一书中的第3章,第3.2节构建Spark的开发环境,作者于俊 向海 代其锋 马海平,更多章节内容可以访问云栖社区"华章社区&q ...

  6. 构建开发环境 构建demo_构建自己的wotsapp第6部分

    构建开发环境 构建demo I should start this article with a disclaimer: It is based on iOS 13, Swift 5, and Xco ...

  7. 为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。

    为 Python Server Pages 和 Oracle 构建快速 Web 开发环境. 为 Python Server Pages 和 Oracle 构建快速 Web 开发环境. - 在水一方 - ...

  8. 构建开发环境 构建demo_构建自己的wotsapp第1部分

    构建开发环境 构建demo I should start this article with a disclaimer: It is based on iOS 13, Swift 5, and Xco ...

  9. Windows 7 下IIS 7.5 结合Zend构建PHP集成开发环境

    Windows 7 下IIS 7.5 结合Zend构建PHP集成开发环境 作者:宋杨 日期:2010年7月4日星期日 FeedBack:songyang@songyang.me 系统环境:Window ...

最新文章

  1. 冲刺区块链第一股,也是AI芯片第一股,嘉楠在美提交IPO招股书
  2. request.getParameter如何获取radio的属性值
  3. 寻找GridView中模板列中的控件
  4. 达到年薪 40W 必需掌握的技术。
  5. 使用Guava MapSplitters配置Hadoop
  6. .Net 中的继承知识点
  7. GLIBC中NPTL线程实现代码阅读
  8. 【java】我工作三年了,该懂并发了!
  9. [Axis2与Eclipse整合开发Web Service系列之二] Top-Down方式,通过WSDL逆向生成服务端(续)
  10. linux学习笔记-7.文件属性
  11. 如何查看手机上已连接 WIFI 的密码
  12. mysql闪现_css,javascript_点击按钮出现弹窗,弹窗只是闪现了一下,为什么没有一直出现?,css,javascript - phpStudy...
  13. 苹果手机手机用数据线连接苹果电脑时为何会一直断开无法连接
  14. python 输出 百分比
  15. 如何使windows系统环境变量的改变即时生效
  16. 如何做好PPT——画图篇
  17. ubuntu16.04(虚拟机) 上MPD(Music Player Daemon)+MPC运行环境搭建
  18. s3cmd 快速评估RADOSGW的性能
  19. go语言初学者常见错误
  20. Liunx配置yum源与本地配置yum源

热门文章

  1. C++ char 类型:字符型和最小的整型
  2. HDU 3669 Cross the Wall(斜率DP+预处理)
  3. python magic_method
  4. ubantu系统之快捷键使用
  5. 第一百一十八天 how can I 坚持
  6. Spring 与 Hibernate 集成 Transactional设置为只读
  7. [置顶] 第五周项目一构造函数————4)参数初始化表
  8. 16.Java中的String详解
  9. Pandas入门教程(六)
  10. 21、List遍历时修改元素的问题