linux编译过程

一 编辑过程如下:
预处理(Preprocessing)
编译(Compilation)
汇编(Assembly)
链接(Linking)

二 过程详述
预处理:首先对源代码文件test.c和相关头文件,如stdio.h等被预编译器编译成一个.i 文件。
作用:预处理的作用主要是读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行响应的转换。预处理过程还会删除程序中的注释和多余的空白字符。
命令:gcc -E test.c -o test.i

编译:编译成汇编语言
作用:编译过程是把预处理完的文件进行一系列词法分析、语法分析及优化后产生相应的汇编代码文件。
命令:gcc -S test.i -o test.s

汇编:将上面的汇编指令编译生成目标文件
作用:汇编器是将汇编代码转换成机器可以执行的指令,每一个汇编语句几乎都对应一条机器指令。所以汇编器的汇编过程相对于编译器来说比较简单,他没有复杂的语法,也没有语义、也不需要指令优化,只是根据汇编指令和机器指令对照表一一对应翻译就可以了。
命令:gcc -c test.s -o test.o

链接:最终生成可执行文件
作用:链接的主要目的是将程序的目标文件与所需要附加的目标文件链接起来,最终生成可执行文件。附加的目标文件也包括了所需要的库文件(静态链接库和动态链接库)
命令:gcc test.o -o test

也可一个命令完成上面的动作:gcc test.o -o test

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值