【问题标题】:What is the difference between .LIB and .OBJ files? (Visual Studio C++).LIB 和 .OBJ 文件有什么区别? (Visual Studio C++)
【发布时间】:2010-11-24 13:37:50
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • .lib 在 windows 中与.a 在 linux 中相同。
      猜你喜欢
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多