您的位置:首页 > 其它

《Moblin非官方教程》系列连载 第二章--第二节--GCC编译器和GDB调试器

2009-06-03 15:02 323 查看
《Moblin非官方教程》系列连载 第二章--第一节--GCC编译器和GDB调试器

作者:徐诚

如需转载,请注明出处。

GCC编译器和GDB调试器都是著名开源社区GNU项目中的子项目,在Moblin开发中离不开它们的身影。下面将介绍这些工具的安装使用方法。

2.2.1  GCC/G++编译器

       GCC最早的设计目标为C语言编译器。随着GNU项目的发展,GCC已经成为了能编译C、C++、Ada、Object C和Java等语言的GNU编译器家族,同时还可执行跨硬件平台的交叉编译工作。
       Moblin开发最常用的编译器即GCC编译器,除此以外,英特尔C++编译器也是选择之一。英特尔C++编译器的操作方法完全兼容GCC编译器,并且提供了对凌动处理器的优化。考虑到GCC使用范围更广,本教程将以GCC编译器作为标准配置。
1.GCC编译器安装
   安装GCC编译器的命令如下:
# yum install make gcc                                                                                                                                      
   注意:如果安装过程中提示需要选择编译器版本,可根据当前硬件平台选择最新发布的版本。另外,如果提示需要安装其他相关软件包,请一并安装。
2.GCC编译命令
      GCC编译器是命令行程序,只能在控制台或终端上执行。编译命令格式如下所示:
$ gcc [-选项 1] [-选项 2]…[-选项 n] <源文件名>                                                                                          
3.GCC编译选项
   常用的GCC编译选项见表2.3所示:
                                                              表2.3  常用GCC/G++编译选项

-o
指定目标名称,常与-c、-S同时使用,默认是“.out”
-Idir
优先在选项后的目录中查找包含的头文件
-lname
链接后缀为“.so”的动态链接库来编译程序
-Ldir
指定编译搜索库的路径
-g
编译器编译时加入debug信息

2.2.2  GDB调试器

       Moblin程序员中最常用的调试工具是GDB,GDB调试器是GNU项目的子项目。该程序提供了所有常用调试功能,是Moblin系统中最为简单快捷的调试工具。
1.GDB调试器安装
安装GDB调试器的命令如下所示:
# yum install gdb                                                                                                                                                   
2.GDB常用调试命令
   只有使用GCC编译时加入“-g”选项所生成的可执行文件才能被调试,命令如下所示:
$ gcc -g <源文件名>                                                                                                                                              
   使用GDB打开可执行文件的命令如下所示:
$ gdb <可执行文件名>
   使用GDB打开可执行文件后,系统进入GDB的调试界面。该界面也是命令行界面,可通过输入命令进行调试操作,常用的命令见表2.4。
                                                                  表2.4  常用GDB命令及解释

break
设置断点,支持如下形式:break 行号;break 函数名称;break 行号/函数名称 if 条件
print
显示变量或表达式的值
clear
删除设置在指定行号或函数上的断点
continue
从断点处继续执行程序
watch
在程序中设置观测点
run
运行打开的可执行文件
next
单步执行程序
step
进入所调用的函数内部,查看执行情况
quit
退出GDB
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息