2

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

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

我做了什么:

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

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

4

1 回答 1

1

看来您的 DLL 版本的 lib 路径出现在静态 lib 版本之前。

于 2013-02-25T12:52:57.843 回答