gcc编译常用命令
简介
GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C 语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal 语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C 语言编译器的意思了,而是变成了 GNU Compiler Collection 也即是 GNU 编译器家族的意思了。另一方面,说到 GCC 对于操作系统平台及硬件平台支持,概括起来就是一句话:无所不在。
简单测试
下面一个代码例子
1 |
|
一步到位的编译
1 |
|
其实编译分成四步:预处理(也叫预编译,preprocessing)、编译(compilation)、汇编(assembly)、链接(linking)
预处理
在预处理阶段会将**#include的文件都包含到当前文件,上面例子中时间stdio.h文件中的内容包含进来,并且将define宏定义都进行替换。但注意typedef**类型定义不变。
指令如下,用**-E**选项
1 |
|
编译
编译生成汇编代码 ,用-S选项,如下
1 |
|
汇编
这个阶段,将汇编文件生成目标文件
1 |
|
链接
gcc连接器是gas提供的,负责将程序的目标文件与所需的所有附加的目标文件连接起来,最终生成可执行文件。附加的目标文件包括静态连接库和动态连接库。
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!