28

我知道 .OBJ 是编译一个编译单元的结果,而 .LIB 是一个可以从多个 .OBJ 创建的静态库,但这种差异似乎仅在于编译单元的数量。还有其他区别吗?它是相同的还是不同的文件格式?

当我想知道在两个(或更多).LIB 中定义的相同静态变量是否在链接到最终可执行文件期间被合并时,我遇到了这个问题。对于 .OBJ,变量被合并。但在.LIBs 中是否相同?

4

2 回答 2

41

.LIB 文件是与索引连接在一起的 .OBJ 文件的集合。链接器的处理方式也应该没有区别。

于 2009-09-01T07:38:54.080 回答
5

看起来 .lib 文件就像 .obj 文件的集合。有些人还把将几个 .obj 文件转换为 .lib 文件的过程称为存档。在这种情况下,.lib 文件是一盒 .obj 文件,链接器可以平等对待。

于 2010-08-26T15:27:06.150 回答