c++ - 使用 MSVC 编译的 Qt 程序在 app.exec() 上崩溃
问题描述
我需要将 OpenCV 包含到我的程序中,所以经过很长时间,我放弃了在 mingw 上设置它(这对我的程序来说是完全可用的)并安装了 MSVC17 编译器和调试器。但是当我使用 MSVC 运行我的应用程序时,程序会因0x0000005 code, access violation on 0xfffffff
.
它总是app.exec()
在main.cpp中崩溃
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
MyClass myClass;
myClass.getView()->setMinimumWidth(900);
myClass.getView()->setMinimumHeight(600);
QQuickWindow *quickWindow = qobject_cast<QQuickWindow *>(myClass.getView());
quickWindow->setFlags(Qt::FramelessWindowHint);
//Connecting signal from QML to exit application
QObject::connect(myClass.getView()->engine(), SIGNAL(quit()), &app, SLOT(quit()));
quickWindow->show();
return app.exec(); //Here it crash
}
正如我所说,它完全适用于 mingw(32 位)。
MSVC2017 x64 在构建以前由 mingw x32 使用的应用程序时会以某种方式崩溃吗?有谁知道如何解决它?
非常感谢!
//编辑:
不知何故,它适用于发布,但不适用于调试模式。
//编辑:
仅当应用程序显示可见的 QML 对象时才会崩溃
解决方案
这听起来像是 32 位与 64 位的问题。
尝试更新您的项目的依赖关系,看看是否可以解决它,如果您指定 CPU 构建,您应该能够将原始源重新构建为 x64,并更新任何 x86 的依赖关系。
或者,以 32 位模式运行应用程序。
推荐阅读
- node.js - npm 运行服务失败
- haskell - Haskell - 计算多个元素的出现次数并返回元组
- arrays - C动态数组不正确的数字
- sql - 在没有触发器的情况下防止连续重复值
- uipageviewcontroller - 嵌套的 UIPageViewController
- firebase - 显示从 firestore 检索到的数组字段时出错
- java - 从这种字符串中提取数据的最佳方法
- angular - Angular 10 - 无法从 HammerJS 获取触摸事件
- tableau-api - 计算Tableau中不同连接的两个值的总和?
- python - 在条件语句中列出切片