GCC入门

作者: professordeng | 来源:发表于2018-11-01 16:38 被阅读0次

    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格式

    相关文章

      网友评论

          本文标题:GCC入门

          本文链接:https://www.haomeiwen.com/subject/wnmxxqtx.html