Qt5应用程序立即崩溃,除非运行与图形处理器

Qt5 App crashes instantly unless run with graphics processor

本文关键字:运行 图形处理器 应用程序 崩溃 Qt5      更新时间:2023-10-16

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

起初编译和运行良好,但现在它立即崩溃。我发现它在以下场景下运行良好。

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

  • 从资源管理器启动(仅限调试构建)

奇怪的部分是当我试图从资源管理器运行版本构建时,它在启动时立即崩溃,除非我通过右键单击并选择使用图形处理器运行它。(我选择内置英特尔或nvidia的gpu并不重要)

查看QtCreator的调试日志,我可以看到它在其他dll中加载这三个

sLibrary C:Program Files (x86)NVIDIA CorporationCoProcManagerdetoured.dll loaded
sLibrary C:Program Files (x86)NVIDIA CorporationCoProcManagerNvd3d9wrap.dll loaded
sLibrary C:Program Files (x86)NVIDIA CorporationCoProcManagernvdxgiwrap.dll loaded

是否有我可能不小心改变的东西会导致这种行为?我不确定为什么它最初会工作,直到最近才开始这个行为。

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

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

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

显然它可以在qtcreator中工作,因为它知道它必须加载qminimal