GCC入门

2018-11-01  本文已影响0人  professordeng

GCC(GNU Compiler Collection,GNU 编译器套装),现在支持编译解释多种语言如 C++ 和 Java。

格式:gcc [选项] [文件]

GCC 可以一次性完成 C 语言源文件的编译,但分步编译可以理解每一步做了什么工作。

在 vim 编辑器上编写以下代码并保存为 hello.c。

#include <stdio.h>

int main(){
  printf("hey, girl!\n");
  return 0
}

分步编译 C 语言程序

GCC 编译一个 C 语言程序需要以下四步,以 hello.c 为例。

  1. 预处理生成 .i 文件。
  2. 编译成汇编语言,生成 .S 文件。
  3. 汇编后生成目标文件 .o 文件。
  4. 将各个模块的 .o 文件链接起来生成一个可执行文件。
gcc -E hello.c -o hello.i

执行以上命令生成 hello.i 文件,本过程主要是处理预处理问题,例如宏的展开问题、文件的包含问题。

gcc -S hello.i

执行后生成 hello.s 文件,里面全是汇编指令,学习汇编的同学应该知道。

gcc -c hello.s

该过程生成 hello.o 目标文件,但是不进行链接。

gcc hello.o -o hello

链接完会生成 hello 可执行文件。

直接生成可执行文件

进入 hello.c 的目录下运行:

gcc hello.c

然后你会在目录下发现 a.out 文件,然后运行,指令如下

./a.out

./ 表示当前目录

参考文献

gcc格式

上一篇下一篇

猜你喜欢

热点阅读