应用程序错误 - 调试 exe 无法运行

Posted

技术标签:

【中文标题】应用程序错误 - 调试 exe 无法运行【英文标题】:Application error - debug exe wont run 【发布时间】:2012-09-21 16:13:40 【问题描述】:

我最近下载了Assimp,但遇到了一些麻烦。

我已经链接了库,我可以编译程序,它在Release mode 中运行良好;然而,Debug .exe 却出现了这个错误:

应用程序无法正确启动 (0xc0150002)。单击“确定”关闭应用程序。

更多细节:

我正在使用 VS2010,目标机器设置为 x86

我正在使用提供的 32 位调试 dll (Assimp32d.dll),我尝试将运行时库设置为 /MT/MTd/MD/MDd,但没有成功.

我从其他类似的线程中读到我应该在.exe 上运行Dependency Walker,但我不确定输出的含义。如果对大家有帮助,我会贴在这里。

错误:“c:\users\-----\documents\visual studio 2010\projects\AssimpTest\debug\ASSIMP32D.DLL”的并排配置信息包含错误。应用程序无法启动,因为它的并排配置不正确。请查看应用程序事件日志或使用命令行 sxstrace.exe 工具了解更多详细信息 (14001)。 错误:未找到至少一个必需的隐式或转发依赖项。 错误:由于隐式依赖模块中缺少导出函数,至少一个模块具有未解析的导入。 错误:发现具有不同 CPU 类型的模块。

【问题讨论】:

应用程序事件日志告诉您什么?如果您看到有关 DebugCRT 丢失的消息,那么您需要使用 VS2010 从源代码重建 DLL。 刚刚弄清楚如何检查。它说:依赖程序集 Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8" 找不到。请使用 sxstrace.exe 进行详细诊断。看来我得重建了。? 您的下载可能已损坏。您可以尝试重新下载 Assimp。如果这不能解决问题,重新编译可能是解决方案。 【参考方案1】:

我没有重新构建库,而是下载了一组不同的库(它是 SDK 安装程序),其中的调试 dll 运行良好。

以防万一有人在使用同一个软件时遇到同样的问题,这是为我工作的安装程序的确切名称:assimp-sdk-3.0-setup.exe

【讨论】:

谢谢,其实我也遇到了同样的问题,不知道怎么办。这很奇怪。您的解决方案解决了我的问题!【参考方案2】:

我在使用 Assimp 3.0 时尝试在调试模式下运行 64 位项目时遇到了同样的问题。

我所做的是转到 assimp/workspaces/vc9,在 Visual Studio 10 中打开 assimp.sln,转换项目,然后重建 32 位和 64 位 dll。 请注意,您还必须为此安装 boost,并编辑项目属性,使其指向包含的 boost 目录。

可能还有一种使用 CMake 的方法,但我发现整个过程一开始就太麻烦了。

【讨论】:

【参考方案3】:

我的解决方案只是将调试版本链接到发布的 .dll 文件。没有更多的问题,而且我对调试 Assimp 库也没有那么感兴趣!

【讨论】:

【参考方案4】:

我遇到了同样的问题,后来我下载了“assimp-sdk-3.0-setup.exe”文件并将其安装为标准的 Windows 应用程序。

我将 Visual Studio Solution Include & Lib 目录指向新安装位置的相应文件夹,将 DLL 复制到我的应用程序位置。问题已解决。希望这可以帮助某人。

干杯。

【讨论】:

以上是关于应用程序错误 - 调试 exe 无法运行的主要内容,如果未能解决你的问题,请参考以下文章

关于 MSVSMON.EXE 的 Visual Studio 调试错误似乎没有运行

当我的应用程序无法在调试模式下运行,但 exe 文件可以正常运行时,这意味着啥?

几个调试错误

为啥我的exe文件没有在其他电脑上运行? [调试]

“无法在 Web 服务器上开始调试” MSVSMON.EXE 无法启动。 VS2010 错误

visual C++ 6.0 问题:链接:致命错误LNK1104:无法打开文件“调试/ d.exe“ 执行link.exe时出错。