我需要将OpenCV包含到我的程序中,所以很长一段时间后,我放弃了在mingw上设置它(这对我的程序来说是完全可用的(,并安装了MSVC17编译器和调试器。但当我用MSVC运行我的应用程序时,程序会用0x0000005 code, access violation on 0xfffffff
崩溃。
它总是在main.cpp中的app.exec()
上崩溃
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位模式运行应用程序