3、深入了解GNU cc(gcc)编译器

深入了解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位存储单元。
- 内联函数:短的内联函数会像宏一样

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值