.LIB和.OBJ文件有什么区别? (Visual Studio C ++)

时间:2009-09-01 07:37:26

标签: c++ linker static-libraries static-variables object-files

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

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

2 个答案:

答案 0 :(得分:38)

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

答案 1 :(得分:5)

似乎.lib文件就像.obj文件的集合。有些人还会考虑将多个.obj文件切换为.lib文件的过程,如Archive。在这种情况下,.lib文件是一个.obj文件框,链接器可以平等对待它。