深入了解GNU cc(gcc)编译器
1. GNU cc概述
GNU cc(gcc)是GNU项目的编译器套件,可编译C、C++、Objective C程序,还能在g77的支持下编译Fortran程序。目前,Pascal、Modula - 3、Ada 9X等语言的前端编译器也处于不同的开发阶段。由于gcc几乎是所有Linux开发的基石,下面将深入探讨它。本文示例基于gcc 2.7.2.3版本。
2. GNU cc的特性
gcc为程序员提供了对编译过程的广泛控制,编译过程最多包含四个阶段:
- 预处理
- 正式编译
- 汇编
- 链接
你可以在任何阶段停止编译过程,以检查该阶段编译器的输出。gcc还能处理各种C方言,如ANSI C或传统的(Kernighan和Ritchie)C,并且能轻松编译C++和Objective C。
你可以控制嵌入到生成的二进制文件中的调试信息的数量和类型,并且和大多数编译器一样,gcc也能进行代码优化。不过,虽然gcc允许同时使用调试信息和优化,但不建议这样做,因为优化后的代码很难调试,静态变量可能会消失,循环可能会被展开,导致优化后的程序与原始源代码无法逐行对应。
gcc包含30多个单独的警告和三个“通用”警告级别,它还是一个交叉编译器,你可以在一种处理器架构上开发在另一种架构上运行的代码。此外,gcc为C和C++提供了大量扩展,这些扩展大多能提高性能、帮助编译器进行代码优化或让编程工作更轻松,但代价是牺牲了可移植性。以下是一些常见扩展:
- “long long”类型:用于提供64位存储单元。
- 内联函数:短的内联函数会像宏一样
超级会员免费看
订阅专栏 解锁全文
5474

被折叠的 条评论
为什么被折叠?



