编辑器是指我用它来写程序的(编辑代码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。就是说,我们用编辑器编写程序,由编译器编译后才可以运行!
编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。
GCC(GNU Compiler Collection,GNU 编译器套件),是由 GNU 开发的编程语言编译器。GCC 原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如 Linux、BSD、Mac OS X 等)采纳为标准的编译器,GCC 同样适用于微软的 Windows。
GCC 最初用于编译 C 语言,随着项目的发展 GCC 已经成为了能够编译 C、C++、Java、Ada、fortran、Object C、Object C++、Go 语言的编译器大家族。
1. gcc 支持编译的一些源文件后缀名
后缀 源文件
.c C语言源文件
.C .cc .cxx C++源文件
.m Object-C源文件
.i 经过预处理后的C源文件
.ii 经过预处理后的C++源文件
.s .S 汇编语言源文件
.h 预处理文件(头文件)
.o 目标文件
.a 存档文件
2. gcc 编译程序的流程
3.gcc 常用编译应用实例
分步编译:
1)gcc -E hello.c -o hello.i
2)gcc -S hello.i -o hello.s
3)gcc -c hello.s -o hello.o
4)gcc hello.o -o hello_elf
编译选项说明:
-o file指定生成的输出文件名为 file
-E只进行预处理
-S只进行预处理和编译
-c只进行预处理、编译和汇编
文件名后缀说明:
.c C 语言文件
.i 预处理后的 C 语言文件
.s 预处理后的汇编文件
.o 编译后的目标文件
4.用 gcc 编译一个经典 C 程序
// filename: hello.c
#include <stdio.h>
int main(int argc, char **argv)
{
printf("Hello, binbin!");
}
/**
*在终端打开后的界面中输入:$gcc hello.c -o hello
*如果没有error,说明编译成功,将会在当前目录生成一个可执行文件 hello
*继续输入:./hello 就会运行该程序,在bash上打印出 Hello, binbin!
**/