欢迎来到朵拉利品网
知识中心
资讯
  • 资讯
  • 产品
  • 供应商
您的位置: 朵拉利品网 >  知识中心 > c文件o文件 linux下 为什么要生成.o文件 .o文件和.c文件还有生成的可执行文件有啥...
c文件o文件 linux下 为什么要生成.o文件 .o文件和.c文件还有生成的可执行文件有啥...
2020-04-19 04:30:12 来源:朵拉利品网

1, linux下 为什么要生成.o文件 .o文件和.c文件还有生成的可执行文件有啥...



你好,.o文件又称对象文件,是可执行文件。
.o文件就是对象文件,是可重定向文件的一种,通常以ELF格式保存,里面包含了对各个函数的入口标记,描述,当程序要执行时还需要链接(link).链接就是把多个.o文件链成一个可执行文件。
在win平台下,用来链接的重定向文件也可为PE格式的.obj文件
当多种编程语言希望混合编译时,就可以通过分别编译成.o文件,再链接(link)成可执行文件。
以 Code::Blocks ,win系统为例,我们每次写好一段程序,构建并运行以后都会在存储该程序的文件夹里自动生成一个 *.o 文件和一个*.exe 文件,而后者是可以直接运行的(双击即可打开)。当我们写好了一个大的程序的各个部分以后,就可将所有的*.o 文件链接成一个可执行文件。
望采纳!

2, 怎样用gcc把.c文件生成.o文件



以GCC编译器为例,可以分为四步。
第一步是预处理,包括语法检查等工作。
gcc -P abc.c
第二步由源程序生产汇编语言代码。
gcc -S abc.c
会生成abc.s文件,这个文件里就是汇编代码。
第三步编译器生成目标代码,一个源文件生成一个目标代码。
gcc -c abc.c
会生成abc.o
第四步连接器从目标代码生成可执行文件。
gcc abc.o
目标代码包括机器码和符号表(函数及变量名)。连接器的主要作用是通过符号表在库文件和其他模块中找到在目标代码中引入或未定义的符号(函数及变量名),将几个目标代码合成可执行文件。

3, GCC问题:两个.C文件编译成一个.O文件



.o 就是object, 也就相当于windows下编译的obj文件, 俗称目标文件
是指源代码经过编译程序产生的能被cpu直接识别二进制代码。由编译器生成,
具体的生成方法在不同的开发环境上是不同的.
百度百科说.o文件是对象文件
里面包含的内容就是01这样的机器可执行的执令
当你程序要执行时还需要进行链接(link).
连接程序再将这个文件与系统库文件连接就生成可执行文件
就是把多个.o文件链成一个可执行文件

名词解释


文件

曾经有报道指出,著名导演史蒂文·斯皮尔伯格正在筹备一部名为《邮报》(The Post)的讲述征服丑闻的影片。近日,关于这部备受关注的影片又有新的消息传来。首先,影片名从《邮报》更换成了《文件》(The Papers)。其次是,除了既定的主演,汤姆·汉克斯和梅丽尔·斯特里普之外,影片其他的演员也已曝光。