我有一个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