Ubuntu下c程序运行原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu下c程序运行原理相关的知识,希望对你有一定的参考价值。

运行环境:

1、Vitural box下安装Ubuntu虚拟机

2、编译运行工具:gcc

3、编辑器:vim


 

主要过程:

1、利用vim编辑hello.c 

技术分享

技术分享

2、编译和执行

(1)预处理阶段:使用 -E命令,得到编译文件; -o将预处理的输出存储到文件

技术分享

(2)编译阶段:使用-S 命令将预处理文件编译为汇编语言文件,生成文件默认为.s的后缀;-o可以指定产生的汇编文件的名字

技术分享

(3)汇编阶段:使用-c命令,将汇编文件编译成可重定向的目标文件,(二进制形式,后缀为.o)

也可以结合-o命令产生指定名称的目标文件

技术分享

 技术分享

 (4)链接阶段:链接器将可重定向的文件hello.o以及库文件,执行并入操作,形成可执行的目标文件。

默认生成a.out,可以利用-o选项生成目标文件的名称。

 技术分享

(5)执行阶段:

技术分享

 

gcc hello.c -o hello 命令,直接将hello.c编译为可执行的目标文件,中间经过预处理阶段、编译极阶段、汇编阶段、链接阶段。

技术分享

 

以上是关于Ubuntu下c程序运行原理的主要内容,如果未能解决你的问题,请参考以下文章

erlang虚拟机代码运行原理

java跨平台原理

(王道408考研操作系统)第三章内存管理-第一节1:内存基础知识程序编译运行原理

简述Java程序从编写到运行的基本步骤,并说明Java的基本工作原理

底层原理C/C++内存对齐详解

java程序运行原理