zoukankan      html  css  js  c++  java
  • 【C】编译和链接

    我的个人博客:https://www.wuyizuokan.com

    一份源代码要生成一份可以运行的程序,需要经过的步骤就是编译和链接。

    C语言的源代码一般以.c和.h结尾,其中的C语言代码属于比较高级的语言,人类可以很轻易的看懂,但是计算机并不能理解,也不能直接运行。计算机只能识别二进制的数据,C代码这种类似于人类自然语言的高级语言,它是不能识别的。
    所以C语言需要先进行编译,这份工作是通过编译器来完成的。C语言的编译器有很多,比较常用的是GCC(Linux下的C编译器,当然也有人将其移植到了Windows系统中),MSVC(微软提供的编译器,和VS一起使用)

    编译器编译C源码文件,生成目标文件(.obj),这时候的目标文件还不能运行,需要再经过一步链接,链接是将多个目标文件和系统提供的一些组件链接到一起,形成一个可以载入到操作系统中运行的可执行文件。

    这里,编译阶段中还可以分为三个小阶段:
    预处理阶段:
    1、处理以#开头的预编译指令,如,#define.
    2、处理条件预编译指令,如#if,#elif, #else, #endif
    3、处理#include
    4、删除注释。
    .....

    编译阶段:
    词法分析、语法分析、语义分析等。

    汇编阶段:
    把代码编译为汇编文件,一般会有代码段和数据段的生成。

  • 相关阅读:
    CentOS7设置hostname、hosts、静态IP地址、关闭防火墙
    排序算法总结对比
    Java——HashMap使用Demo
    Java——HashMap底层源码分析
    Java——LinkedList使用Demo
    laravel框架之及時更改
    laravel框架之批刪&全選&全不選&反選
    laravel框架之即點即改
    laravel框架之修改
    laravel框架之增刪改查
  • 原文地址:https://www.cnblogs.com/wuyizuokan/p/11182390.html
Copyright © 2011-2022 走看看