linux中.o时什么文件,浅析Linux中的.a、.so、和.o文件

linux中.o时什么文件,浅析Linux中的.a、.so、和.o文件_第1张图片

前言

我们在Linux平台进行源码安装的时候,经常会遇到.so、.o文件的输出信息。这些文件的输出信息我们一般来说只需要大概看一眼,不需要深入探索。但是如果我们需要亲自编写源码,手动进行编译的时候,就需要对这些信息进行深度了解了。

文件解释

在linux中这些.so、.o、.a文件,其实和Windows中的obj、lib、dll、exe等文件的关系是对应的。在解释linux这些文件之前,我们先来说下windows中这些文件的作用。

windows下obj、lib、dll、exe的关系

exe是我们平常所知道的可执行程序的后缀,而obj、lib、dll则是构成运行程序的关键文件。lib是和dll对应的。lib是静态链接库的库文件,dll是动态链接库的库文件。

所谓静态就是link的时候把里面需要的东西抽取出来安排到你的exe文件中,以后运行你的exe的时候不再需要lib。所谓动态就是exe运行的时候依赖于dll里面提供的功能,没有这个dll,你的exe无法运行。

lib,dll,exe都算是最终的目标文件,是最终产物。而c/c++属于源代码。源代码和最终目标文件中过渡的就是中间代码obj,实际上之所以需要中间代码,是你不可能一次得到目标文件。

比如说一个exe需要很多的cpp文件生成。而编译器一次只能编译一个cpp文件。这样编译器编译好一个cpp以后会将其编译成obj,当所有必须要的cpp都编译成obj以后,再统

你可能感兴趣的:(linux中.o时什么文件)