除非使用图形处理器运行,否则Qt5 App会立即崩溃

时间:2013-06-08 23:39:14

标签: c++ qt dll qt5

我有一个使用QtCore,QtGui,QtWidgets和QtMultimedia的Qt5(仅限声音)

起初它编译并运行正常,但现在它立即崩溃。我发现它在以下情况下运行良好。

  • 从QtCreator启动(调试和发布)

  • 从资源管理器启动(仅限调试版本)

奇怪的是,当我尝试从资源管理器运行发布版本时,它会在启动时立即崩溃,除非我通过右键单击并选择使用图形处理器运行来运行它。 (我选择在intel或nvidea中选择哪个gpu并不重要)

从QtCreator查看调试日志我可以看到它加载了其他dll这三个

sLibrary C:\Program Files (x86)\NVIDIA Corporation\CoProcManager\detoured.dll loaded
sLibrary C:\Program Files (x86)\NVIDIA Corporation\CoProcManager\Nvd3d9wrap.dll loaded
sLibrary C:\Program Files (x86)\NVIDIA Corporation\CoProcManager\nvdxgiwrap.dll loaded

是否有一些我可能意外更改会导致此行为?我不确定为什么它最初会起作用,并且最近才开始这种行为。

编辑:我查看了我的git日志,直到找到破坏它的提交。 Commit中唯一的变化就是我从项目文件中删除了CONFIG + = console。我不想在后台使用控制台运行我的程序,所以我仍然在寻找修复。

1 个答案:

答案 0 :(得分:0)

经过进一步调查,我在调试日志中发现正在加载qminimal.dll,然后立即卸载。我发现我需要将qminimal.dll移动到我的程序运行目录中的平台文件夹中。

我假设没有控制台告诉应用程序使用qminimal而不是其他一些dll。调试版本不受影响,因为它显然总是使用控制台构建。

显然它起源于qtcreator,因为知道它必须加载qminimal。