gcc:GNU Compiler Collection的缩写。最初是作为C语言的编译器,现在已支持多种语言。Gcc支持多种硬件平台。
gcc是一个可移植跨平台编译器
gcc还能跨平台交叉编译器。
gcc有多种语言前端,用于解析不同语言
gcc按模块化设计,可以加入新语言和新CPU架构
gcc是自由开源软件。
二、gcc编译和程序的过程
1、预处理 hello.c(源程序)经过预处理到hello.i(被修改的文本文本文件) 预处理主要是展开宏,头文件展开。
2、编译 hello.i经编译器hello.s(汇编程序文本)
3、汇编 hello.s经过汇编器生成hello.o可重定位目标文件(二进制)
4、链接 hello.o文件经过链接器生成hello可执行目标程序。
三 gcc常用选项
-o 产生目标 .i/.s/.o/可执行文件 gcc hello.o -o hello
-c 通知gcc取消连接步骤,即编译源码并在最后生成目标文件 gcc -c hello.s -o hello.o
-E 只运行C预编译器 gcc -E hello.c -o hello.i
-S 告诉编译器产生汇编语言文件后停止编译,产生的汇编语言文件扩展名为.s gcc -S hello.i -o hello.s
-Wall使gcc对源码文件有问题的地方发出警告
-llib 链接lib库
-g 在目标文件中嵌入调试信息,意识gdb之类的调试程序调试
一次完成:gcc hello.c -o hello
四 gcc编译多文件
gcc hello_fn.c main.c -o hello