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

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

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

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

最佳答案

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

关于c++ - .LIB 和 .OBJ 文件有什么区别? (Visual Studio C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1361071/

相关文章:

c++ - 是否可以使用另一个 cpp 文件中定义的类而不是任何 header ?

OpenCV静态链接错误

c++ - ibmemcached 链接错误 : undefined reference to `memcached_exist'

c - Linux cc 项目内目录中的库编译?

c - 未定义对 '_*' 链接器错误的引用

macos - OS X 有两个链接器吗?一静态一动态?

cmake - 如何使用 CMake 在项目中添加预构建的静态库?

c++ - Nvidia Nsight - 如何连接到本地主机?

c# - 了解 C++ 对 Web 应用程序开发的重要性

python - 如何用PIP交叉编译Python包?