我知道.OBJ是编译一个编译单元的结果,而.LIB是一个静态库,可以从几个.OBJ创建,但这种差异似乎只是在编译单元的数量上。还有其他区别吗?是相同还是不同的文件格式?
我想知道在链接到最终可执行文件期间是否合并了两个(或更多).LIB中定义的相同静态变量。对于.OBJ,变量是合并的。但在.LIBs中它是一样的吗?
答案 0 :(得分:38)
.LIB文件是与索引连接在一起的.OBJ文件的集合。链接器处理方式应该没有区别。
答案 1 :(得分:5)
似乎.lib文件就像.obj文件的集合。有些人还会考虑将多个.obj文件切换为.lib文件的过程,如Archive。在这种情况下,.lib文件是一个.obj文件框,链接器可以平等对待它。