C语言 _ 编辑、调试工具

一、GCC编译器

1、GNU工具

  • 编译工具:把一个源程序编译成为一个可执行程序。
  • 调试工具:能对执行程序进行源码及汇编级调试。
  • 软件工程工具:用于协助多人开发或大型软件项目的管理,如make、CVS、Subvision
  • 其他工具:用于把多个目标文件链接成可执行文件的链接器,或者用作格式转换的工具。

2、GCC简介

  • 全称为GNU CC ,GNU项目中符合ANSI C标准的的编译系统。
  • 编译如C、C++、Object C 、Java、Fortran 、Pascal、Modula-3和Ada等多种语言。
  • GCC是可以在多种硬件平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。
  • 一个交叉平台编译器,适合在嵌入式领域的开发编译

3、GCC编译器的版本

  • GNU Compiler Collection
  • C、C++、Objective-C、Fortran,Java、Ada
  • http://gcc.gnu.org

4、gcc所支持后缀名解释

  •  .c                               -----  C原始程序
  •  .C/.cc/.cxx                 -----  C++原始程序
  •  .m                              -----  Objective-C原始程序
  •  .i                                ----- 已经预处理过的 C原始程序
  •  .ii                               -----  已经预处理过的C++原始程序
  •  .s/.S                           -----  汇编语言原始程序
  •  .h                               -----  预处理文件(头文件)
  •  .o                               -----  目标文件
  •  .a/.so                         -----  编译后的库文件

5、编译器的主要组件

  • 分析器:分析器将源语言程序代码转换成汇编语言。因为要从一种格式转换成为另一种格式(C到汇编),所以分析器需要知道目标机器的汇编语言。
  • 汇编器:汇编器将汇编语言代码转换成为CPU可以执行字节码。
  • 链接器:链接器将汇编器生成的单独的目标文件组合成可执行的应用程序。链接器需要知道这种目标格式以便工作。
  • 标准C库:核心的C函数都有一个主要的C库来提供。如果在应用程序中用到了C库中的函数,这个库就会通过链接器和源代码连接来生成最终的可执行程序。

6、GCC的基本用法和选项

Gcc最基本的用法:gcc  [options ] [filenames]

  •   -c,  只编译,不连接成为可执行文件,编译器只是由输入的.c等源文件生成.o为后缀的目标文件,通常用于编译不包含主程序的子程序文件。
  •   -o  output  filename, 确定输出文件的名称为output filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out
  •   -g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。
  •   -0,对程序进行 优化编译、连接、采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率更高,但是,编译、连接的速度就会相应的更慢一些。
  •   -02,比-0更好的优化编译、连接,当然整个编译、连接过程会更慢。
  •   -I  dirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。
  •   -L  dirname,将dirname所指出的目录加入到程序函数档案库文件的目录列表中,是在链接过程中使用的参数。

7、GCC的错误类型及对策

  • 头文件找不到
  • 函数,变量未定义
  • 档案库错误

8、GCC编译过程

                        

  • gcc gcc.c -o gcc                       -------------  直接生成 gcc.exe 可执行文件
  • gcc -E  gcc.c -o gcc.i                -------------  生成 gcc.i   预处理文件
  • gcc -S  gcc.c -o gcc.s               -------------  生成 gcc.s 汇编文件
  • gcc -c   gcc.c -o gcc.o               -------------  生成 gcc.o 目标文件
  • gcc -c   gcc.o -o gcc2.o             -------------  直接生成 gcc2.exe 可执行文件

二、GDB调试工具

1、Gdb调试流程:

  • 首先使用gcc对gcc.c 进行编译,注意一定要加上选项 -g
  • #gcc -g gcc.c -o gcc
  • #gdb  gcc

2、进入代码调试模式后

  •    (gdb)l                                    ----    查看文件
  •   (gdb) b  6                               ----    设置断点
  •   (gdb)del  1                             ----   删除第一个断点
  •    (gdb)info b                            ----    查看断点情况
  •   (gdb)r                                    ----    运行代码
  •   (gdb) p  n                              ----    查看变量值
  •   (gdb) n      (gdb)  s                ----    单步运行       n  :运行主程序时不进去子函数,s :运行主函数时进入子函数
  •   (gdb) c                                  ----    恢复程序运行  ------- 直接运行到下一个断点
  •   (gdb) help  [command]         ----    帮助

注:需要命令行传入参数 : ./gcc   45  23 23  

                     在gdb模式下:(gdb)set args  56  89

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值