(转贴)linux 下的软件开发之GCC,GDB 用法篇 -|tinylee 发表于 2005-8-22 1:02:00 在为Linux 开发应用程序时,绝大多数情况下使用的都是C 语言,因此几乎每一位Linux 程序员面临的首要问题都是如何灵活运用C 编译器。目前Linux 下最常用的C 语言编译器是GCC( GNU Compiler Collection),它是GNU 项目中符合ANSI C 标准的编译系统,能够编译用C、 C++和 Object C 等语言编写的程序。GCC 不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端模块来支持各种语言,如Java、 Fortran、 Pascal、 Modula-3 和 Ada 等。 开放、自由和灵活是Linux 的魅力所在,而这一点在GCC 上的体现就是程序员通过它能够更好地控制整个编译过程。在使用GCC 编译程序时,编译过程可以被细分为四个阶段: ◆ 预处理(Pre-Processing) ◆ 编译(Compiling) ◆ 汇编(Assembling) ◆ 链接(Linking) Linux 程序员可以根据自己的需要让GCC 在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或者对最后生成的二进制文件进行控制,以便通过加入不同数量和种类的调试代码来为今后的调试做好准备。和其它常用的编译器一样,GCC 也提供了灵活而强大的代码优化功能,利用它可以生成执行效率更高的代码。 GCC 提供了30 多条警告信息和三个警告级别,使用它们有助于增强程序的稳定性和可移植性。此外,GCC还对标准的C 和 C++语言进行了大量的扩展,提高程序的执行效率,有助于编译器进行代码优化,能够减轻编程的工作量。 GCC 起步 在学习使用GCC 之前,下面的这个例子能够帮助用户迅速理解GCC 的工作原理,并将其立即运用到实际的项目开发中去。首先用熟悉的编辑器输入清单1 所示的代码: 清单1: hello.c # i nclude int main(void) { printf ("Hello world, Linux programming!n"); return 0; } 然后执行下面的命令编译和运行这段程序: # gcc hello.c -o hello # ./hello Hello world, Linux programming! 从程序员的角度看,只需简单地执行一条GCC 命令就可以了,但从编译器的角度来看,却需要完成一系列非常繁杂的工作。首先,GCC 需要调用预处理程序cpp,由它负责展开在源文件中定义的宏,并向其中插入“#i nclude”语句所包含的内容;接着,GCC 会调用ccl 和 as 将处理后的源代码编译成目标代码;最后,GCC 会调用...