为什么Windows告诉我,当我只使用静态.lib时找不到.dll文件?

时间:2013-02-25 12:31:57

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

我认为我有一个理解问题,如果有人最终向我解释,我会很高兴...

我正在开发一个使用我自己的静态库(.lib)的Win32应用程序(.exe)。该库依赖于另一个静态库(实际上是Windows的libxml2)。

我做了什么:

  • 我将libxml include目录添加到我的.lib项目“VC ++目录” - >“包含目录”。
  • 我构建了我的lib,构建成功,并且.lib文件出现在我的Output文件夹中。
  • 我创建了一个控制台应用程序项目,并编写了一些使用.lib函数的代码(后者又使用了libxml函数)。我的lib项目使用“框架和参考” - >“添加新参考”添加为应用项目的参考。
  • 我尝试构建应用程序并遇到链接器错误 - 这没关系,因为我忘了通过“链接器” - >“输入” - >“附加依赖项”将libxml2.lib添加到我的应用程序中。所以我将libxml2.lib添加到依赖项及其路径到“VC ++目录” - >“库目录”。 我重建了应用程序,构建成功了。但是当我尝试启动我的.exe时会出现错误。它说:“应用程序无法启动,因为libxml2.dll。重新安装应用程序可能会修复等等。”

那为什么我的.exe需要libxml2.dll?我想仅将libxml2用作静态库。 所有实验均使用调试配置设置完成。

1 个答案:

答案 0 :(得分:1)

似乎lib的DLL版本的lib路径出现在静态lib版本之前。