gpt4 book ai didi

c++ - 调试版本找不到调试运行时 DLL

转载 作者:行者123 更新时间:2023-11-30 01:18:45 25 4
gpt4 key购买 nike

我有一个 Visual Studio 2008 (SP1) 程序,调试版本,32 位,似乎无法找到调试运行时 DLL(多线程调试 DLL)。

但疯狂的是,depends.exe 显示必需的 DLL 存在(也缺失)。它实际上看起来像是在尝试加载这些 DLL 两次。

下面是来自 depends.exe 的屏幕截图的链接,显示了我在说什么 - 分析作为解决方案一部分的库。

当我启动该程序时,我收到“该程序无法启动,因为您的计算机缺少 MSVCP90D.dll。请尝试重新安装该程序以解决此问题。”

如果我进入 sxs 目录并将“丢失的”DLL 复制到与二进制文件相同的目录中,程序就会运行。

应用程序 list 指定了正确的 DLL 版本(由 depends.exe 找到它们就是证明)。我已经检查了该运行时版本的 list ,在我未经训练的眼中它看起来是合法的。

二进制文件本身显示了与链接图像中检查的 DLL 相同的问题,但也缺少 MSVCP90D.DLL(但仍然存在)。

我已经尝试使用内部/外部 list 进行构建,按照其他地方的建议关闭和打开增量链接,但都无济于事。我会尝试链接一个非 DLL 运行时,但是我正在使用的库在数十个解决方案之间共享,因此改变它们的构建方式并不是一个真正的选择(当然除非事实证明这是唯一的解决方案到我的谷歌搜索没有出现的已知问题)。

我试过运行 sxstrace,但大多数情况下输出为空 (!),当它不为空时它不会显示任何错误。

我尝试使用 windbg,但一无所获,因为我对该工具不是特别有经验,也不确定我在寻找什么。

我在 64 位 Windows 7 上运行。我早期的一个想法是,在我的盒子上安装 VS2005、2008 和 2010 会导致一些奇怪的问题,但我没有找到支持该假设的证据。

(PS。看起来像与 msvcp90d.dll is missing msvcr90d.dll 类似的问题,据我所知实际上并没有得到解决,并且还提到了 C# - 我的项目是纯 C++)。

PPS。看起来与 "application configuration is incorrect" and "side-by-side configuration is incorrect" running VS2008 64-bit debug build 类似的问题但是,该问题与第 3 方库和 64 位构建有关。

此外,将“丢失的”DLL 手动从 SxS 复制到 bin 目录的“解决方案”(正如上面提到的那样)根本不是解决方案 - 充其量是一种变通方法。

最佳答案

可再发行组件不包含调试 DLL 文件。您需要安装 Visual Studio 才能获取它们。

关于c++ - 调试版本找不到调试运行时 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22211222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com