【发布时间】:2015-08-04 07:53:45
【问题描述】:
我有与this question 类似的问题。我正在构建一个依赖于其他几个 DLL 的 DLL。自然,在安装 VS2012 的机器上以调试模式编译时,一切正常。然后我开始在发布模式下编译所有依赖项,创建发布 DLL。
当我在安装了 Visual C++ 运行时的全新 Windows 7 机器上部署它们时,主 DLL 不会加载,因为它仍然要求 MSVCR110D.dll。
DependencyWalker 向我展示了这个(抱歉审查,我无法显示名称,但我为发布模式构建留下了 r 后缀):
如您所见,它引用了 Visual C++ 运行时的发行版。即使在整个依赖 DLL 树下,也只有对发布运行时 DLL 的引用:
有一个引用 MSVCR80.dll 的延迟加载 DLL,但实际上从未真正加载过,这也不是我遇到的错误。
问题是:我如何找出为什么它仍然依赖于调试运行时?哪个DLL,哪个函数调用负责?如果不通过 DependencyWalker,我可以使用哪些工具和哪些步骤来追踪它?
【问题讨论】:
标签: c++ visual-studio-2012 dll