笔记_C程序编译步骤

本文详细阐述了C代码编译成可执行程序的四个步骤:预处理(包括宏定义、头文件展开等)、语法检查、汇编和链接。特别介绍了gcc编译过程中的分步操作及其选项,强调了使用ANSI文件格式的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、C代码编译成可执行程序经过4步:


1 预处理:

        宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法。


2 编译:

        检查语法,将预处理后文件编译生成汇编文件


3 汇编:

        将汇编文件生成目标文件(二进制文件)。


4 链接:

        C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去



二、gcc编译过程            

        文件格式一定要改成ANSI,不然可能会乱码。


  1. 分步编译


使用示例:            指令区   A     B    C            
            预处理:    gcc -E hello.c -o hello.i        指令区  解步编译所用的命令
            编  译:     gcc -S hello.i -o hello.s        A  原文件路径及名称(可为多个文件)
            汇  编:     gcc -c hello.s -o hello.o        B  转换符
            链  接:     gcc    hello.o -o hello            C  输出文件路径及名称
        
    说明
            选项                含义
            -E                只进行预处理
            -S(大写)        只进行预处理和编译
            -c(小写)        只进行预处理、编译和汇编
            -o file            指定生成的输出文件名为 file
        
        文件后缀    含义
            .c        C 语言文件
            .i        预处理后的 C 语言文件
            .s        编译后的汇编文件
            .o        编译后的目标文件
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值