必备
在讲解各编译器之前,必须先了解一下以下这些文件。这些文件在编译器目录下或者编译生成目标平台的可执行程序时经常见到。此外,还需要注意区分 Windows 平台 和 Linux 平台的文件。
- .o 文件: 指的是 object 文件,俗称目标文件。在 Linux 下扩展名缩写为
.o
,在 windows 下通常为.obj
文件。 - .a 文件: 指的是 archive 文件,俗称静态库文件。在 Linux 下扩展名缩写为
.a
,在 windows 下通常为.lib
文件。 - .so 文件: 指的是 shared object 文件,用于动态连接的。在 Linux 下扩展名缩写为
.so
,在 windows 下通常为.dll
文件。
.o
文件是链接文件,.a
是静态库文件,需要 .o 文件生成,作为一个库为外部程序提供函数接口。详细的可以看一下博文 ARM 之一 镜像文件(Image)/可执行文件/ELF文件/对象文件 详解。
在交叉编译工具链目录中,有大量的 .o
和 .a
文件。这些文件在我们编译目标平台时会被用到!为什么在 Windows 下面的编译工具链中会有这么多的 .o 和 .a 文件呢?这是因为我们使