下载此文档

,GDB用法篇.docx


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
10 / 12
1 / 12
(转贴)linux下的软件开发之GCC,GD拥法篇-|tinylee发表于2005-8-22 1:02:00在为Linux开发应用程序时,绝大多数情况下使用的都是 C语言,因此
几乎每一位Linux程序员面临的首要问题都是如何灵活运用 C编译器。目前
Linux下最常用的C语言编译器是 GCC(GNU CompilerCollectiorj),它是 GNU项 目中符合ANSI C标准的编译系统,能够编译用
C、C+拜口 Object C等语言编写的程序。GCC不仅功能非常强大,结构也异 常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,
如 Java、 Fortran、 Pasca、l Modula-3 和 Ada 等。
开放、自由和灵活是Linux的魅力所在,而这一点在 GCC上的体现就是程 序员通过它能够更好地控制整个编译过程。在使用 GC魏译程序时,编译过程 可以被细分为四个阶段:
预处理(Pre-Processing
编译(Compiling)
汇编(Assembling)
链接(Linking)
Linux程序员可以根据自己的需要让 GCC在编译的任何阶段结束,以便检查 或使用编译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制, 以便通过加入不同数量和种类的调试代码来为今后的调试做好准备。和其它常
用的编译器一样,GCCm提供了灵活而强大的代码优化功能,利用它可以生成 执行效率更高的代码。
GCCI供了 30多条警告信息和三个警告级别,使用它们有助于增强程序的 稳定性和可移植性。止匕外,GCC®对标准的C和C+错言进行了大量的扩展,提 高程序的执行效率,有助于编译器进行代码优化,能够减轻编程的工作量。
GCC起步
在学习使用GCC之前,下面的这个例子能够帮助用户迅速理解 GCC的工作 原理,并将其立即运用到实际的项目开发中去。首先用熟悉的编辑器输入清单 1
2 / 12
1 / 12
所示的代码:
清单 1:
# i nclude <>
int main(void){printf ("Hello world, Linux programming!n");
return 0;} 然后执行下面的命令编译和运行这段程序:
gcc -o hello
./hello
Hello world, Linux programming!
从程序员的角度看,只需简单地执行一条 GCC命令就可以了,但从编译器
的角度来看,却需要完成一系列非常繁杂的工作。首先, GCC需要调用预处理
程序cpp,由它负责展开在源文件中定义的宏,并向其中插入 俳include语句所 包含的内容;接着,GC微调用ccl和as将处理后的源代码编译成目标代码; 最后,GCC会调用链接程序ld,把生成的目标代码链接成一个可执行程序。
为了更好地理解GCC的工作过程,可以把上述编译过程分成几个步骤单独 进行,并观察每步的运行结果。第一步是进行预编译,使用 -E 参数可以让 GCC
在预处理结束后停止编译过程:
gcc -E -o
此时若查看 文件中的内容,会发现 的内容确实都插到文件
里去了,而其它应当被预处理的宏定义也都做了相应的处理。下一步是将
编译为目标代码,这可以通过使用-c参数来完成:
gcc -c -o
,因此上述命令将自动跳 过预处理步骤而开始执行编译过程,也可以使用 -x参数让GCCR指定的步骤开 始编译。最后一步是将生成的目标文件链接成可执行文件:
gcc -o hello
3 / 12
1 / 12
在采用模块化的设计思想进行软件开发时,通常整个程序是由多个源文件
组成的,相应地也就形成了多个编译单元,使用 GCC能够很好地管理这些编译
单元。假设有一个由 foo
.c 和 foo
.c 两个源文件组成的程序,为了对它们进行编译,并最终生成可执行程序
foo,可以使用下面这条命令:
gcc foo
.c foo
.c -o foo
如果同时处理的文件不止一个, GCC05然会按照预处理、编译和链接的过
程依次进行。如果深究起来,上面这条命令大致相当于依次执行如下三条命 令:
gcc -c foo
.c -o foo

# gcc -c foo
.c -o foo

# gcc foo
foo

,GDB用法篇 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2072510724
  • 文件大小24 KB
  • 时间2021-10-19