GNU C与C++编译器GCC使用详解

需积分: 0 2 下载量 155 浏览量 更新于2024-08-01 收藏 661KB PDF 举报
"Linux GCC 使用手册" GNU C 编译器(GCC)是 GNU 工程的一部分,用于编译 C 和 C++ 代码。手册页主要解释了 GCC 的选项含义,但强调其内容可能不是最新的,权威文档位于 Info 文件中。GCC 可以执行四个步骤:预处理、编译、汇编和链接,这些步骤可以根据输入文件的后缀名自动确定。 **总览 (SYNOPSIS)** GCC 和 G++ 命令行工具接受选项和文件名作为参数。你可以通过指定不同的选项来改变编译行为,或者直接提供源代码文件进行编译。例如: ``` gcc [option|filename] g++ [option|filename] ``` **警告 (WARNING)** 手册页警告用户,它的内容可能已经过时,并建议查阅 Info 文件获取最新和最准确的文档。Info 文件的名字是 `gcc` 或 `Using and Porting GNU CC`。 **描述 (DESCRIPTION)** - **预处理 (Preprocessing)**:预处理阶段处理宏定义、条件编译指令和包含的头文件,将源文件转换成预处理后的文件(扩展名为 .i 对于 C,.ii 对于 C++)。 - **编译 (Compilation)**:编译阶段将预处理后的文本转换成汇编代码(扩展名为 .s)。 - **汇编 (Assembly)**:汇编器将汇编代码转换成机器可理解的目标代码(扩展名为 .o)。 - **链接 (Linking)**:最后,链接器将多个目标文件和库组合成一个可执行程序。 GCC 和 G++ 根据源文件的扩展名来决定处理方式。例如: - `.c` 文件被视为 C 源程序,经过预处理、编译、汇编和链接。 - `.CC`, `.cc`, `.cxx` 文件被视为 C++ 源程序,同样经历四个步骤,但链接阶段会使用 C++ 的规则。 - `.m` 文件用于 Objective-C 代码。 - `.i` 和 `.ii` 文件是预处理后的 C 和 C++ 文件,直接进行编译和汇编。 - `.s` 和 `.S` 文件是汇编语言源码,GCC 会进行汇编操作。`.S` 文件还会先进行预处理。 **文件后缀与语言类型** GCC 支持多种语言的源文件,并通过后缀自动识别: - `.h` 文件通常为头文件,包含函数声明和宏定义,它们在预处理阶段被包含进源文件。 GCC 提供了丰富的选项来控制编译过程,如优化级别 (`-O`), 错误和警告信息 (`-Wall`),以及指定编译器的行为,比如链接特定的库或者生成特定架构的目标代码。通过这些选项,开发者可以自定义编译过程以适应项目需求。 Linux GCC 是一个强大的多语言编译器,能够处理 C、C++、Objective-C 等语言的源代码,并提供了丰富的配置选项来满足各种开发环境和性能要求。虽然手册页可能不及时更新,但 Info 文件提供了最新、最全面的文档资源。