我们正在将我们的Linux开发移植到Windows。
要创建静态库,我们仍然使用Windows(Msys2)下的ar
来创建libXXX.a
文件。 windows方式实际上是使用一些Windows工具创建.lib
文件。但libXXX.a
文件似乎在我们的msys2工具链上正常工作。但链接此文件非常慢。那么.a
和.lib
文件之间有什么区别?创建.lib
文件会加快链接速度吗?
答案 0 :(得分:0)
.a
和.lib
都是包含一堆目标文件的档案。区别在于前者是ELF二进制文件,后者是COFF文件(MS COFF)。可能您的工具链需要额外的努力来链接非本机对象格式。
P.S。 .lib
文件通常也可能包含用于创建动态导入而不是COFF对象的存根。并且它也可能因同样的原因(非本机数据格式)影响构建时间。
P.P.S显然,为了加快链接过程,所有输入必须具有相同的格式,这对链接器来说是原生的。