【问题标题】:MSVCR90D.dll not found in debug mode with Visual C++ 2008在 Visual C++ 2008 的调试模式下找不到 MSVCR90D.dll
【发布时间】:2008-10-20 15:05:22
【问题描述】:

我在使用 Visual C++ 2008 时遇到了问题。我已经安装了 opencv 并创建了一个新程序,并且我构建它时没有出现任何错误。但是,它抱怨调试时找不到 MSVCR90D.dll。在发布模式下完全没有问题。

我确实在 Winsxs 文件夹之一中有 MSVCR90D.dll。有谁知道解决这个问题?这是一个已知的错误?

杰拉德

【问题讨论】:

标签: c++ visual-studio-2008 debugging winsxs msvcr90d.dll


【解决方案1】:

forum post 中描述了几种潜在的解决方案。看看这些是否有帮助。

从那里得到一个提示:

转到 %系统驱动器%\Windows\WinSxS 并查找目录 x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456

如果不存在,请转到 VS 设置并确保您拥有所有 安装在 VC++ 下的库。

还有一个:

我遇到了同样的问题,但已经解决了 通过关闭增量链接 (项目属性...链接器... 常规...启用增量链接: 不)。

确认最后一个:

基于软件安装的项目 开车抱怨失踪 MSVCR90D.dll。问题消失了 如果您关闭增量链接 (当然要全部重建)。

【讨论】:

  • 非常感谢您的帮助。有效!!但是,我可以在设置增量链接时遇到任何问题吗?它有什么区别?再次感谢您
  • 来自 MSDN:增量链接的程序在功能上等同于非增量链接的程序。这是重要的一点。阅读更多msdn.microsoft.com/en-us/library/4khtbfyf(VS.80).aspx
  • 关闭增量链接 (OGRE3D) 并且它起作用了。谢谢+1
  • 非常感谢“软件安装驱动器”部分,这是我的问题。
  • 将“启用增量链接”设置为“否”对我有用。
【解决方案2】:

遇到同样的问题,我找到了一篇文章,引导我在 VS9.0 安装中调试 DLL。对于默认安装,它们位于:C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC90.DebugCRT

共有三个 DLL 和一个清单文件。您可以将这些添加到您的System32 目录,将目录添加到您的PATH 环境变量或在调试时将文件复制到与您的可执行文件相同的目录。

增量链接可加快构建速度(链接器仅重新链接已更改的库,而不是重新链接整个项目)。否则它对构建输出没有影响。对于大型项目,我不建议关闭增量链接。

【讨论】:

  • 这对我有用。我只是复制DLL,它运行正常。但是,复制库可能不是一个好的选择,也不是向 PATH 变量添加额外的目录(需要重新启动 PC)。还有比这些更好的方法吗??
【解决方案3】:

虽然另一个 VC9.0 项目做得很好,但也遇到了同样的问题。所以我比较了两个项目设置。 关键的区别在于“项目属性”->“配置属性”->“清单工具”->“输入和输出”->“嵌入清单”。此选项必须设置为 YES。

【讨论】:

  • 可能不是这样!它要求我使用清单文件,而不是嵌入式清单。我改为“否”,它运行得很好
  • 这个精确的改变为我解决了这个问题。在不同的情况下可能会有所不同。
【解决方案4】:

使用 Dependency Walker 解决 DLL 问题要容易得多。它允许您分析您的应用程序,捕获启动时加载的 DLL 和稍后加载的 DLL。它会吐出很多与DLL加载或加载失败有关的消息。它还理解 DLL 的 SxS 加载。

您可以将 EXE 作为参数传递给 Depends.EXE,它会分析该应用程序。这可以与大多数 IDE 结合使用。例如,在 Visual Studio 中,您可以设置“调试命令”。默认情况下,这是您自己的 EXE。将其更改为depends.EXE,并将命令参数设置为(至少)/pb your.debug.exe

【讨论】:

    【解决方案5】:

    使用函数 File->New->Project From Existing Code 在 VC++ 2008 中重新编译您的项目。 它帮助了我自己,也许它会帮助你。问候。

    【讨论】:

      【解决方案6】:

      我已经解决了同样的问题,如下所示:

      1. 选择项目,右键打开属性页。
      2. 选择配置属性。
      3. 从树列表中选择 C/C++。
      4. 选择代码生成。
      5. 查看左侧的属性列表,查看运行时库属性。
      6. 选择多线程调试,而不是关闭多线程 DLL。

      当您这样做时,您的项目会嵌入依赖的 dll,因此它可以避免依赖问题。

      注意:我在一个 dll 项目上工作并遇到了这个问题。完成上述步骤后,它适用于我的情况。

      【讨论】:

        【解决方案7】:

        这是我静态链接的原因之一;更大的 EXE,但我以前从未遇到过这样的依赖问题。可能本身就值得一个问题......

        【讨论】:

        • “可能本身就值得一个问题”虽然我不同意你表达的观点,但我完全同意你的结论...... ^_^
        【解决方案8】:

        我无法给出明确的解决方案,但这里有一些有用的链接:

        当然,如果您点击链接,MSDN 上还有更多内容。

        【讨论】:

          【解决方案9】:

          我遇到了问题:

          无法加载文件或程序集“AudioInterface,版本=1.0.3548.29920,Culture=neutral,PublicKeyToken=null”或其依赖项之一。此应用程序无法启动,因为应用程序配置不正确。重新安装应用程序可能会解决此问题。 (HRESULT 异常:0x800736B1)

          AudioInterface 是我的 C++ 项目的名称。

          切换到“发布”配置,一切正常。

          我跟踪到它在我的 DLL 旁边缺少清单文件,我进一步跟踪到设置了程序集标识。 (属性 > 清单工具 > 常规 > 程序集标识)

          我删除了这个设置,清单放到了正确的位置,一切正常。

          【讨论】:

            【解决方案10】:

            我尝试了所有建议的解决方案,但没有任何运气。我终于发现 "C:\WINDOWS\WinSxS\Manifests" 文件夹中缺少清单。

            C:\WINDOWS\WinSxS 中找到您的 dll 所在的文件夹。检查C:\WINDOWS\WinSxS\Manifests 中是否有与您的 dll 文件夹名称匹配的清单。如果清单丢失,请从另一台计算机复制正确的清单并将其粘贴到清单文件夹中。清单文件名是:

            “x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456.cat”

            “x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456.manifest”

            【讨论】:

              【解决方案11】:

              我遇到了类似的问题,但所描述的解决方案都不适合我。

              最后我做了以下来解决我的问题:

              第 1 步: 按照@user176861给出的建议

              第 2 步: 在 VC++ 项目属性 -> 配置属性 -> 链接器 -> 清单文件中: 在“其他清单依赖项”中添加以下内容:

              type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b'
              

              进行上述更改后,我可以调试了。

              【讨论】:

                猜你喜欢
                • 2010-11-12
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-02-16
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多