gcc基础知识.pdfVIP

  • 9
  • 0
  • 约7.25千字
  • 约 17页
  • 2016-03-12 发布于山西
  • 举报
gcc基础知识

GCC 编译器介绍 GCC 已经不仅仅能支持C语言;它现在还支 持Ada 语言,C++语言,Java 语言, Objective C语言,Pascal语言,COBOL语言, 以及支持函数式编程和逻辑编程的Mercury 语言,等等。 GCC 是一个交叉平台的编译器,目前支持几 乎所有主流CPU 处理器平台,它可以完成从 C、C++、objective-C等源文件向运行在特 定CPU硬件上的目标代码的转换,GCC不仅功 能非常强大,结构也异常灵活,便携性 (portable)与跨平台支持 (cross-platform support)特性是GCC的 显著优点,目前,GCC编译器所能够支持的 源程序的格式如表3.6 所示。 .c C 语言源程序 .a 由目标文件构成的档案库文件 .C;;cc;.cxx C++源程序 .h 源程序包含的头文件 .i 经过预处理的C 程序 .ii 经过预处理的C++程序 .m Objective-C 源程序 .o 编译后的目标文件 .s 汇编语言源程序 .S 经过预编译的汇编程序 GCC 是一组编译工具的总称,其软件包里包 含众多的工具,按其类型,主要有以下的分 类。 ① C编译器cc, cc1, cc1plus, gcc ② C++编译器c++, cc1plus, g++ ③ 源码预处理程序cpp, cpp0 ④ 库文件libgcc.a, libgcc_eh.a, libgcc_s.so, libiberty.a, libstdc++.[a,so], libsupc++.a 用GCC 编译程序生成可执行文件有时候看 起来似乎仅通过编译一步就完成了,但事实 上,使用GCC编译工具由C语言源程序生成可 执行文件的过程并不单单是一个编译的过 程,而要经过下面的几个过程。 ·预处理(Pre-Processing) ·编译(Compiling) ·汇编(Assembling) ·链接(Linking) 在实际编译的时候,GCC首先调用cpp命令进 行预处理,主要实现对源代码编译前的预处 理,比如将源代码中指定的头文件包含进来。 接着调用cc1 命令进行编译,作为整个编译 过程的一个中间步骤,该过程会将源代码翻 译生成汇编代码。汇编过程是针对汇编语言 的步骤,调用as 命令进行工作,生成扩展 名为.o 的目标文件,当所有的目标文件都 生成之后,GCC就调用链接器ld来完成最后 的关键性工作——链接。 GCC 编译选项解析 GCC是Linux 下基于命令行的c语言编译器, 其基本的使用语法如下。 gcc [option | filename ]… 对于编译C++的源程序,其基本的语法如下。 g++ [ option | filename ]… 其中option 为GCC 使用时的选项(后面会 再详述),而filename 为需要用GCC 作编 译处理的文件名。就GCC 来说,其本身是一 个十分复杂的命令,合理地使用其命令选项 可以有效提高程序的编译效率、优化代码, GCC拥有众多的命令选项,有超过100 个的 编译选项可用,按其应用有如下的分类。 常用编译选项 ·-c 选项:这是GCC 命令的常用选项。-c 选项告诉GCC 仅把源程序编译为目标代码 而并不做链接的工作,所以采用该选项的编 译指令不会生成最终的可执行程序,而是生 成一个与源程序文件名相同的以

文档评论(0)

1亿VIP精品文档

相关文档