0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言编译过程

zzw_111_bit 2023-02-04 11:58 次阅读

以最简单的c语言代码为例,hello.c代码如下:

#include
int main()
{
    printf("hello world!\\n");
    return 0;
}

1、预编译

将.c中的头文件展开、宏展开,生成的文件是.i文件。例如hello.c文件,生成过程是:

gcc -E hello.c -o hello.i

预处理的过程是将头文件展开、替换,如果有宏,也会进行替换。这一步不进行语法检查。

2、编译

将预处理的.i文件生成.s的汇编文件。会进行语法检查。

gcc -S hello.i -o hello.s

3、汇编

将.s汇编文件生成.o的目标文件。

gcc -c hello.s -o hello.o

4、链接

将.o文件链接成目标文件,也就是可执行程序

gcc hello.o -o hello

这一步中如果不加-o默认输出的可执行程序时a.out。这四步是将整个编译过程展开来看的,通常可以直接使用gcc hello.c,直接生成结果a.out。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7528

    浏览量

    128432
  • 汇编
    +关注

    关注

    2

    文章

    214

    浏览量

    25734
  • 源代码
    +关注

    关注

    94

    文章

    2926

    浏览量

    66057
  • 编译
    +关注

    关注

    0

    文章

    614

    浏览量

    32374
收藏 人收藏

    评论

    相关推荐

    C语言编译过程

    C语言编译链接过程要把我们编写的一个C程序源代码,转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。过程图解如下。
    发表于 06-25 10:36 285次阅读
    C<b class='flag-5'>语言</b>的<b class='flag-5'>编译</b><b class='flag-5'>过程</b>

    C语言编译链接过程

      C语言编译链接过程要把我们编写的一个C程序源代码转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代
    的头像 发表于 08-21 10:06 1612次阅读
    C<b class='flag-5'>语言</b>的<b class='flag-5'>编译</b>链接<b class='flag-5'>过程</b>

    嵌入式物联网教程 4.01 C语言编译过程 #嵌入式物联网 #硬声创作季

    物联网编译
    fly
    发布于 :2022年08月27日 17:06:31

    DSP C语言与主机C语言的主要区别

    。 2)DSP的C语言编译过程为,C编译为ASM,再由ASM
    发表于 11-03 15:14

    让你快速学会DSP技术——DSP入门必备资料与常见问题解决

    ,如屏幕绘图等。但在CCS中,为了方便调试,可以将数据通过printf命令虚拟输出到主机的屏幕上。2)DSP的C语言编译过程为:C
    发表于 10-15 15:37

    C语言编译过程是怎样的

    C语言C语言编译过程,各过程作用预处理阶段将源码文件
    发表于 10-27 09:00

    C语言编译步骤

    嵌入式C语言开发入门——程序编译计算机语言发展过程C语言
    发表于 12-15 08:21

    C语言基础与数据类型概述

    outputgcc -o 输出的文件名 输入文件名2.c语言编译过程预处理cpp -o a.i 001.c替换【gcc -E】
    发表于 12-23 06:58

    DSP学习资料

    的扩展部分,如屏幕绘图等。但在 CCS 中,为了方便调试,可以将数据通过 prinf 命令虚拟输出到主机的屏幕上。2)DSP 的 C 语言编译过程为,
    发表于 07-06 17:22

    详细剖析C语言编译过程

    编译---->形成目标代码,目标代码是在目标机器上运行的代码。 连接---->将目标代码与C函数库相连接,并将源程序所用的库代码与目标代码合并,并形成最终可执行的二进制机器代码(程序)。 执行----->在特定的机器环境下运行C程序。
    的头像 发表于 02-08 17:02 4821次阅读
    详细剖析C<b class='flag-5'>语言</b><b class='flag-5'>编译</b><b class='flag-5'>过程</b>

    做DSP应该了解那些知识做DSP最应该懂得的57个问题介绍

    的屏幕上。2)DSP的C语言编译过程为,C编译为ASM,再由ASM编译为OBJ。因此C和ASM的对应关系非常明确,非常便于人工优化。3)D
    发表于 01-09 08:00 11次下载
    做DSP应该了解那些知识做DSP最应该懂得的57个问题介绍

    做DSP最应该懂得那些问题十四个问题的详细资料说明

    到主机的屏幕上。 2)DSP的C语言编译过程为,C编译为ASM,再由ASM编译为OBJ。因此C和ASM的对应关系非常明确,非常便于人工优化
    发表于 05-24 14:50 6次下载
    做DSP最应该懂得那些问题十四个问题的详细资料说明

    GCC编译C语言程序的过程是怎么样的

    使用GCC将C语言源代码文件生成可执行文件的过程,需要经历四个的步骤:预处理(Preprocessing)编译(Compilation)汇编(Assembly)链接(Linking)
    的头像 发表于 02-18 11:47 3561次阅读

    解析C语言编译过程中所做的工作

    C语言编译链接过程要把我们编写的一个C程序源代码,转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。过程图解如下: 本文讲解
    的头像 发表于 06-27 10:21 2818次阅读
    解析C<b class='flag-5'>语言</b><b class='flag-5'>编译</b><b class='flag-5'>过程</b>中所做的工作

    嵌入式面试整理

    C语言C语言编译过程,各过程作用预处理阶段将源码文件预处理:gcc -E xx.c -o xx.i编译
    发表于 10-20 17:36 1次下载
    嵌入式面试整理