陈斌彬的技术博客

Stay foolish,stay hungry

编译器 Gcc 的使用

编辑器是指我用它来写程序的(编辑代码),而我们写的代码语句,电脑是不懂的,我们需要把它转成电脑能懂的语句,编译器就是这样的转化工具。就是说,我们用编辑器编写程序,由编译器编译后才可以运行!

编译器是将易于编写、阅读和维护的高级计算机语言翻译为计算机能解读、运行的低级机器语言的程序。

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 编译程序的流程

img

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!
 **/