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

5
我最近下载了Assimp,遇到了一些问题。
我已经链接了库,可以编译程序,在Release模式下运行良好;然而,在Debug模式下,.exe会提示以下错误:

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

error

更多细节:

  • 我正在使用目标机器设置为x86的VS2010。

  • 我正在使用提供的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。 - Hans Passant
刚刚找到了如何检查的方法。它说:无法找到依赖程序集 Microsoft.VC90.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。请使用 sxstrace.exe 进行详细诊断。看起来我需要重新构建一下? - tempvar
也许你的下载文件已经损坏了。你可以尝试重新下载Assimp。如果这不能解决问题,重新编译可能是解决方案。 - Synxis
4个回答

7

我没有重新构建库,而是下载了不同的库(它是SDK安装程序),从中获取的调试dll完美地工作。

以防万一有人遇到相同软件的同样问题,这是对我有效的安装程序的确切名称:assimp-sdk-3.0-setup.exe


谢谢,我其实也遇到了同样的问题,不知道该怎么办。这很奇怪。你的解决方案解决了我的问题! - JohnCastle

1

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


1
我在使用Assimp 3.0时,尝试以Debug模式运行64位项目时遇到了同样的问题。
我所做的是进入assimp/workspaces/vc9,使用Visual Studio 10打开assimp.sln,转换项目,然后重新构建32位和64位dll。 请注意,您还需要安装boost,并编辑项目属性,使其指向包含boost的目录。
也可能有一种使用CMake的方法,但我发现整个过程太繁琐,不值得费心。

0

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

我将Visual Studio解决方案包含和库目录指向新安装位置的相应文件夹,将DLL复制到我的应用程序位置。问题得到了解决。希望这能帮助到某些人。

干杯。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接