Qt5应用程序立即崩溃,除非运行与图形处理器
Qt5 App crashes instantly unless run with graphics processor
我有一个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
相关文章:
- 不同/较旧的处理器运行c++代码的方式是否不同
- 终端命令在程序运行后自动打开图形
- 用于在运行时选择变量的 C++ 预处理器指令
- 在图形应用程序中,为什么着色器会在运行时加载到应用程序中
- 在代码块中运行我的第一个图形程序
- 运行 SFML 图形后看不到新窗口
- 使用自定义图形层运行专有[Java]应用程序
- 如何仅在本地标头上运行预处理器
- imediacontrol->run 在 C++ 中运行图形时返回E_ACCESSDENIED
- 在32位和64位处理器上运行混合的mpi可执行文件
- 如何在运行时取消定义和定义预处理器值
- 基于使用 make 命令或生成文件运行预处理器
- 如何在许多处理器上运行 boost::threads
- 多处理器加速::线程?所有线程都在一个处理器上运行
- 运行 BFS 以查找从图形底部到顶部的最短路径
- 图形 dfs 运行时错误
- 获取特定进程正在运行的处理器数
- 无法在DEV C++中运行图形
- 图形程序不能在borlandc++中运行.我能做什么呢?
- Qt5应用程序立即崩溃,除非运行与图形处理器