一、GCC编译器
GCC原名为GNU C语言编译器(GNU C Compiler),只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)
二、下载GCC
一般ubuntu都是自带GCC编译器的,在终端下检查是否带GCC命令如下:
which gcc
下载gcc
sudo apt-get install build-essential
三、gcc编译流程
无论是C还是C++程序,从源代码转变为可执行代码都包含四个过程:预处理(Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。
预处理:展开所有的头文件、替换程序中的宏、解析条件编译并添加到文件中。
编译:将经过预编译处理的代码编译成汇编代码,也就是常说的程序编译。
汇编:将汇编语言文件编译成二进制目标文件。
链接:将汇编出来的多个二进制目标文件链接在一起,形成最终的可执行文件,链接的时候还会涉及到静态库和动态库等问题。
四、gcc流程生成的文件
gcc基本语法
gcc [option] file...
例如:
预处理(PreProcessing) | gcc -E(大写)生成.i文件 | 如:gcc -E file [-o name.i](可以自定义文件名) |
编译(Compiling) | gcc -S(大写)生成.s文件 | 如:gcc -S file [-o name.s](可以自定义文件名) |
汇编(Assembling) | gcc -c生成.o文件 | gcc -c file [-o name.o](可以自定义文件名) |
链接(Linking) | gcc -o生成xxx文件 | gcc -o file [-o name](可以自定义文件名) |
五、gcc操作实践
vim编写一个.c文件
分步操作
生成文件顺序
组合拳
生成文件