VS2010生成的.lib文件

时间:2014-04-02 16:02:38

标签: c++ windows visual-studio-2010 dll static-libraries

使用任何C ++ VS2010解决方案

  • 什么是.lib?为什么不总是将程序链接到通过DLL的库?

  • 在VS2010中构建程序是生成.lib的唯一方法吗?

1 个答案:

答案 0 :(得分:3)

生成DLL链接的.lib文件称为“导入库”,它确实是一个静态库(尽管是一种特殊的静态库)。它只是一个静态库,包含在加载时导入DLL的大量代码,换句话说,它充当代码和动态库之间的“中间人”。

如果创建“静态库”,最终会得到一个大的.lib文件,其中包含该库中函数的所有已编译代码。如果您随后使用该库创建可执行文件,则所有代码将在链接时复制到可执行文件中。这会生成一个更大的可执行文件,但在运行时不依赖于单独的DLL文件。

如果您创建“动态库”,最终会得到一个大的.dll文件和一个小的.lib,如前所述。库中函数的所有已编译代码都在.dll文件中。现在你的最终可执行文件更小,因为代码在链接时没有被复制到可执行文件中,但.dll文件必须与可执行文件一起发送,除非你可以依赖它已经在最后正确安装 - 用户的电脑。