hello.c一个生命周期经历的四个过程详解

hello.c

#include <stdio.h>
    void main()
    {
        printf("hello.world!\n");
    }

一般的我们在使用嵌入式IDE平台时会将这其中的四个过程包含进去,只给出最后可执行的二进制代码,仔细分析程序的执行过程,可以发现有以下几个过程,如图所示:
这里写图片描述

1.预处理环节
该过程是将头文件例如stdio.h包含进.c的文本,输出是个hello.i的文本。
用gcc查看hello.c的命令为:
gcc -E hello.c -o hello.i
2.编译环节
该过程是将上一步生成的hello.i的文件变成汇编文本,输出一个hello.s的文本。
用gcc查看hello.s的命令为:
gcc –S hello.i –o hello.s
3.汇编环节
这一步是将上一步生成的hello.s的文本处理成为二进制文件,输出一个hello.o的二进制文件。
用gcc查看hello.o的命令为:
gcc -c hello.s -o hello.o
4.链接环节
该过程将编译器中的C库函数,经过编译之后的例如printf.o的二进制文件链接到hello.o中,最终输出一个a.out程序,可以加载到内存中,由系统进行执行。

这时候就可以使用`./hello.c` 来查看程序的执行结果了。
如果在这时终端上体现权限不够,则使用使用如下命令修改文件权限,然后在执行上面说的命令,该命令如下:
cdmod 777 hello.c //对所有人添加读、写、执行权限。
这时可使用`ls -l hello.c`重新查看文件的读写权限。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值