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

xiaoxiao2021-02-28  93

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`重新查看文件的读写权限。
转载请注明原文地址: https://www.6miu.com/read-55806.html

最新回复(0)