【Linux】gcc编译过程

 

gcc编译.c文件成为一个可执行程序需要经过四个过程
预处理  编译  汇编 链接

那么gcc是如何完成这些操作的呢?
?格式 :gcc -[选项] 要编译的文件 -[选项] 要生成的目标文件

每个过程都干了什么事?
test.c文件通过编译成为可执行程序test.exe


 预处理(进行宏替换)   
     gcc -E test.c -o  test.i   (只预处理生成一个test.i文件)
         1.预处理功能主要包括:宏替换,展开头文件,条件编译,去注释等。
         2.预处理指令是以#开头的代码行。
         3.-E:让gcc在与处理结束后停止编译过程。
         4.-o:指目标文件test.i已经过预处理的C原始程序。
        
 编译(生成汇编)       
     gcc -S test.i  -o  test.s   (只走到编译阶段生成test.s文件)
         1.在这个阶段中,gcc首先要检查代码的规范性,是否有语法错误等。以确定代码要做的功工作,在
      检查无误后,gcc把代码翻译成汇编语言。
      -S:只进行编译,不进行汇编,生成汇编代码。
  汇编 (生成机器可识别代码)       
       gcc -c test.s -o test.o    (test.o计算机已经可以识别但还不可以执行)
       把编译阶段生成的.s文件转换为目标文件。
       -c:看到汇编代码以转化为.o的二进制目标代码
  链接(生成可执行文件或库文件)  
         gcc test.o -o test.exe  生成最终的exe可执行程序
       在成功编译后就进入链接阶段。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值