美文网首页
gcc 编译过程

gcc 编译过程

作者: mnikn | 来源:发表于2017-03-20 21:46 被阅读61次
//hello.c
#include <stdio.h>
int main()
{
    printf("Hello World!\n");
    return 0;
}
gcc -o hello hello.c

在执行上面语句时,-o实际上分多步来处理.c文件。下面我们讲一下gcc的编译过程。

预处理器处理

首先gcc使用预处理器将.c文件中的include文件引入,相当于把#include <stdio.h>替换为stdio.h里面的内容,由于只是进行文本替换,这一步不会检测代码中的语法错误。这个过程会生成.i文件,我们可以通过以下命令生成.i文件。

gcc -E hello.i -o hello.c

gcc -E参数让gcc在预处理后停止编译行为。

转换为目标代码

第二步gcc将hello.i编译为目标代码,这一步会检测代码中的语法错误。这个过程会生成.o文件,我们可以通过以下命令生成.o文件。

gcc -c hello.i -o hello.o

我们会发现.o文件是一堆乱码,因为生成的是二进制文件。

链接为可执行文件

最后一步gcc将.o文件链接为可执行文件,命令如下。

gcc hello.o -o hello

最后执行文件

// ./后不能加空格
./hello

相关文章

  • gcc 编译过程

    在执行上面语句时,-o实际上分多步来处理.c文件。下面我们讲一下gcc的编译过程。 预处理器处理 首先gcc使用预...

  • GCC编译过程

    第一步:进行预编译,使用 -E 参数 gcc-Etest.c-o test.i 查看 test.i 文件中的内容,...

  • gcc如何编译.c 文件、gcc编译过程以及编译的主要参数

    gcc如何编译.c 文件、gcc编译过程以及编译的主要参数如何编译.c 文件假如在当前目录下存在两个文件hello...

  • gcc编译器编译过程

    第一步:预处理阶段 终端编译代码: gcc -E demo1.c -o demo1.i 对demo1.c作预处理生...

  • gcc相关

    gcc编译常用指令 gcc编译过程 gdb调试流程 第一步生成调试文件 第二步 根据指令调试

  • 搭建深度学习环境之三:Linux上安装GCC

    目录: 1.GCC是什么? 2.在容器(Linux系统)中安装GCC 3.GCC的编译过程 4.Makefile简...

  • 动态库

    1、编译隐藏的过程假设有一个源文件: 通常用 gcc 完整的编译命令是 gcc hello.c -o hello上...

  • make与configure

    因为gcc的编译器来进行编译过程过于复杂,所以源码编译软件包安装时会通过configure和make进行编译过程简...

  • GCC编译

    1.1 GCC编译C/C++的四个过程 gcc 是 GUN Compiler Collection的缩写。 预处理...

  • 【C++】gcc编译过程

    【C++】gcc编译过程 C++编译过程主要分为,预处理、编译、汇编、链接四个过程。如下图所示: 第一步:预处理 ...

网友评论

      本文标题:gcc 编译过程

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