使用g ++ -fsanitize = address进行编译时,出现了new-delete-type-mismatch。此代码是否错误?还是这是Qt错误?
我在一个大型应用程序中找到了它,并将其分解为以下代码。我想用QQuickView从C ++显示一个QML项目。但是QQuickView的Destructor中似乎有一个问题。
test.pro:
TEMPLATE = app
TARGET = test
QT += core gui widgets quick
SOURCES += test.cpp
QMAKE_CXXFLAGS += -fsanitize=address
QMAKE_LFLAGS += -fsanitize=address
Run Code Online (Sandbox Code Playgroud)
test.cpp:
#include <QApplication>
#include <QQuickView>
#include <QQuickItem>
int main( int argc, char *argv[] ) {
QApplication app ( argc, argv );
QQuickView view;
view.setSource(QUrl::fromLocalFile("test.qml"));
view.show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
test.qml:
import QtQuick 2.4
Item {
id: item1
anchors.fill: parent
Rectangle {
id: rectangle
color: "#fba4e3"
anchors.fill: parent
}
}
Run Code Online (Sandbox Code Playgroud)
编译:
$ qmake-qt5 …Run Code Online (Sandbox Code Playgroud)