当前位置: 首页 > 工具软件 > moblin > 使用案例 >

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

郎成弘
2023-12-01

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

作者:徐诚

如需转载,请注明出处。

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

2.2.1  GCC/G++编译器

       GCC最早的设计目标为C语言编译器。随着GNU项目的发展,GCC已经成为了能编译CC++AdaObject CJava等语言的GNU编译器家族,同时还可执行跨硬件平台的交叉编译工作。

       Moblin开发最常用的编译器即GCC编译器,除此以外,英特尔C++编译器也是选择之一。英特尔C++编译器的操作方法完全兼容GCC编译器,并且提供了对凌动处理器的优化。考虑到GCC使用范围更广,本教程将以GCC编译器作为标准配置。

1GCC编译器安装

   安装GCC编译器的命令如下:

# yum install make gcc                                                                                                                                      

   注意:如果安装过程中提示需要选择编译器版本,可根据当前硬件平台选择最新发布的版本。另外,如果提示需要安装其他相关软件包,请一并安装。

2GCC编译命令

      GCC编译器是命令行程序,只能在控制台或终端上执行。编译命令格式如下所示:

$ gcc [-选项 1] [-选项 2]…[-选项 n] <源文件名>                                                                                          

3GCC编译选项

   常用的GCC编译选项见表2.3所示:

                                                              表2.3  常用GCC/G++编译选项

-o

指定目标名称,常与-c-S同时使用,默认是“.out

-Idir

优先在选项后的目录中查找包含的头文件

-lname

链接后缀为“.so”的动态链接库来编译程序

-Ldir

指定编译搜索库的路径

-g

编译器编译时加入debug信息

2.2.2  GDB调试器

       Moblin程序员中最常用的调试工具是GDBGDB调试器是GNU项目的子项目。该程序提供了所有常用调试功能,是Moblin系统中最为简单快捷的调试工具。

1GDB调试器安装

安装GDB调试器的命令如下所示:

# yum install gdb                                                                                                                                                   

2GDB常用调试命令

   只有使用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

 

 类似资料: