【问题标题】:understanding dll dependencies了解dll依赖
【发布时间】:2008-12-02 15:13:51
【问题描述】:

我正在 Visual Studio 2008 中构建一个 c++ DLL。

出于某种原因,即使我在发布模式下构建,我的 dll 仍然依赖于 msvcr90d.dll。 我可以看到使用depends.exe

有什么方法可以找出导致这种依赖的原因吗? 我的运行时库设置是 /MD

谢谢, 丹

【问题讨论】:

  • Dependency Walker (depends.exe) 显示了您的应用程序调用的所有函数,因此您可以找出它从 msvcr90d.dll 调用的函数,也许它会有所帮助
  • 也许你包含了一些依赖于调试运行时的静态库?
  • 我已将“显示所有进度消息 (/VERBOSE)”标志添加到链接器设置中。它现在显示为每个符号加载了哪个库。
  • @DanJ - 那是什么原因?

标签: c++ dll


【解决方案1】:

在项目属性中转到"Configuration Properties"/Linker/General 面板。将"Show Progress" 属性更改为"Display All Progress Messages (/VERBOSE)"

链接器现在会告诉你它为什么拉入msvcr90d.dll

如果您从命令行构建,请使用 /VERBOSE 链接器选项(显然)。

【讨论】:

    【解决方案2】:

    可能是一个非常愚蠢的答案..但不是探索在depends.exe中显示的树结构显示哪个dll导致msvcr90d.dll链接?

    【讨论】:

      猜你喜欢
      • 2018-05-12
      • 2018-01-23
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      相关资源
      最近更新 更多