ELF
一般说Linux上的可执行文件,通常是指ELF(Executable and Linking Format) 这种形式的文件。
- 在Linux下使用file 命令能够查看文件是否符合ELF的形式。
- ELF 文件中包含了程序(代码)以及如何运行该程序的相关信息(元数据)。
- 程序(代码)就是指机器语言(machine language)的列表。
机器语言
机器语言是唯一一种CPU能够直接执行的语言,不同种类的CPU使用不同的机器语言。
gcc 编译 C语言
如果我们用C写个Hello World 保存为hello.c文件,这个文件我们无法直接使用,需要先将它转换成可执行文件。
我们可以使用如下命令来转换文件:
gcc hello.c
该转换内部经历了4个步骤 :
- 预处理
- 编译(狭义的)
- 汇编
- 链接
.