zoukankan      html  css  js  c++  java
  • C语言编译各过程

    1.预处理

       此阶段主要完成#符号后面的各项内容到源文件的替换,往往一些莫名其妙的错误都是出现在头文件中的,要在工程中注意积累一些错误知识。

       (1)、#ifdef等内容,完成条件编译内容的替换

       (2)、#include中内容,在当前目录或者指定目录,或者默认目录搜索头文件,并将头文件拷贝到源文件中。

       (3)、#define的内容,替换define的内容(包括上一步的头文件中的define内容)

     此阶段产生[.i]文件。

    2.编译

       此阶段完成语法和语义分析,然后生成中间代码,此中间代码是汇编代码,但是还不可执行,gcc编译的中间文件是[.s]文件。

     在此阶段会出现各种语法和语义错误,特别要小心未定义的行为,这往往是致命的错误。

     第一个阶段和第二个阶段由编译器完成。

    3.汇编

     此阶段主要完成将汇编代码翻译成机器码指令,并将这些指令打包形成可重定位的目标文件,[.O]文件,是二进制文件。

     此阶段由汇编器完成。

    4.链接

     此阶段完成文件中叼用的各种函数跟静态库和动态库的连接,并将它们一起打包合并形成目标文件,即可执行文件。

     此阶段由链接器完成。

     gcc编译C语言主要用到以下几个程序:C编译器gcc、汇编器as、链接器ld和二进制转换工具objcopy。
    ---------------------

  • 相关阅读:
    win10安装jmeter配置环境路径
    genymotion在mac上的安装
    jmeter的启动
    win10的cmd输入javac的问题
    01 | 你真的懂测试吗?从“用户登录”测试谈起 茹炳晟
    冒烟测试
    软件测试基础知识
    红队指南--第3章 列举
    REDTEAM 指南---第四章 外部侦察
    Red Team 指南-第1章 红队和红队概述
  • 原文地址:https://www.cnblogs.com/fengliu-/p/10216810.html
Copyright © 2011-2022 走看看