symbol lookup error, undefined symbol: _ZN9QMetaType22
-
wrote on 8 Feb 2017, 10:51 last edited by
Hello !!!
I have a linux app that uses QCustomPlot.
When i click on plots' axis, app is going to die, and the error appears:"C:/SysGCC/Beaglebone/arm-linux-gnueabihf/sysroot/usr/local/qt5/examples/quick/demos/untitled2: symbol lookup error: C:/SysGCC/Beaglebone/arm-linux-gnueabihf/sysroot/usr/local/qt5/examples/quick/demos/untitled2: undefined symbol: _ZN9QMetaType22registerNormalizedTypeERK10QByteArrayPFvPvEPFS3_S3_PKvEi6QFlagsINS_8TypeFlagEEPK11QMetaObject"
Does anybody know what is the reason of this?
-
Hello !!!
I have a linux app that uses QCustomPlot.
When i click on plots' axis, app is going to die, and the error appears:"C:/SysGCC/Beaglebone/arm-linux-gnueabihf/sysroot/usr/local/qt5/examples/quick/demos/untitled2: symbol lookup error: C:/SysGCC/Beaglebone/arm-linux-gnueabihf/sysroot/usr/local/qt5/examples/quick/demos/untitled2: undefined symbol: _ZN9QMetaType22registerNormalizedTypeERK10QByteArrayPFvPvEPFS3_S3_PKvEi6QFlagsINS_8TypeFlagEEPK11QMetaObject"
Does anybody know what is the reason of this?
You mean that the application starts, and only after clicking someplace on the screen it dies with that error?
-
You mean that the application starts, and only after clicking someplace on the screen it dies with that error?
wrote on 9 Feb 2017, 03:07 last edited by Andrey Shmelew 2 Sept 2017, 03:07 -
exactly, you're right! And these places are axis of QCustomPlot (marked pinky)
Apparently there's a call to:
QMetaType::registerNormalizedType(QByteArray const&, void (*)(void*), void* (*)(void*, void const*), int, QFlags<QMetaType::TypeFlag>, QMetaObject const*)
which can't be resolved, but that's a mighty strange error to get during runtime. Can you post some code of how you setup the plot?
-
Apparently there's a call to:
QMetaType::registerNormalizedType(QByteArray const&, void (*)(void*), void* (*)(void*, void const*), int, QFlags<QMetaType::TypeFlag>, QMetaObject const*)
which can't be resolved, but that's a mighty strange error to get during runtime. Can you post some code of how you setup the plot?
wrote on 10 Feb 2017, 03:33 last edited by Andrey Shmelew 2 Oct 2017, 04:11ui_mainwindow.h
#include <../../qcustomplot.h> class Ui_MainWindow { public: ...stuff... QCustomPlot *customPlot; ..... } void setupUi(QMainWindow *MainWindow) { ...stuff.... customPlot = new QCustomPlot(centralWidget); customPlot->setObjectName(QStringLiteral("customPlot")); customPlot->setGeometry(QRect(10, 50, 1251, 451)); customPlot->setSizePolicy(sizePolicy); customPlot->setFont(font); customPlot->setFocusPolicy(Qt::ClickFocus); ...stuff.... }
ui_mainwinw.cpp
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { .....stuff... ui->customPlot->xAxis->setRange(-8, 600); ui->customPlot->yAxis->setRange(-5, 110); ui->customPlot->clearGraphs(); ...stuff.... }
updategraph.cpp
{ ui->customPlot->addGraph(); ui->customPlot->graph()->setName("graph #1"); ui->customPlot->graph()->setData(xx1, yy1); ui->customPlot->replot(); }
-
ui_mainwindow.h
#include <../../qcustomplot.h> class Ui_MainWindow { public: ...stuff... QCustomPlot *customPlot; ..... } void setupUi(QMainWindow *MainWindow) { ...stuff.... customPlot = new QCustomPlot(centralWidget); customPlot->setObjectName(QStringLiteral("customPlot")); customPlot->setGeometry(QRect(10, 50, 1251, 451)); customPlot->setSizePolicy(sizePolicy); customPlot->setFont(font); customPlot->setFocusPolicy(Qt::ClickFocus); ...stuff.... }
ui_mainwinw.cpp
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { .....stuff... ui->customPlot->xAxis->setRange(-8, 600); ui->customPlot->yAxis->setRange(-5, 110); ui->customPlot->clearGraphs(); ...stuff.... }
updategraph.cpp
{ ui->customPlot->addGraph(); ui->customPlot->graph()->setName("graph #1"); ui->customPlot->graph()->setData(xx1, yy1); ui->customPlot->replot(); }
I don't see anything obviously wrong. Is it possible you have an outdated build of
QCustomPlot
(e.g. if you upgraded Qt, but didn't updateQCustomPlot
)? Also is it possible you updatedQCustomPlot
but didn't rebuild your application (their code isn't binary compatible)? And finally, could you pull a stack trace when the error occurs? -
I don't see anything obviously wrong. Is it possible you have an outdated build of
QCustomPlot
(e.g. if you upgraded Qt, but didn't updateQCustomPlot
)? Also is it possible you updatedQCustomPlot
but didn't rebuild your application (their code isn't binary compatible)? And finally, could you pull a stack trace when the error occurs?wrote on 13 Feb 2017, 11:44 last edited by@kshegunov
thanks for answer,
i've played with versions of QCustomPlot (downloaded an older versions) and it brings no results, the error still kills my app... i dont know about stack trace -
@kshegunov
thanks for answer,
i've played with versions of QCustomPlot (downloaded an older versions) and it brings no results, the error still kills my app... i dont know about stack tracewrote on 14 Feb 2017, 03:15 last edited by Andrey Shmelew@Andrey-Shmelew
any idea how to hack it? for example, place a transparent rectangle on axis. It should not allow to touch the axis.. I know its not good -
@kshegunov
thanks for answer,
i've played with versions of QCustomPlot (downloaded an older versions) and it brings no results, the error still kills my app... i dont know about stack traceWell, I still think it's some kind of incompatibility between versions. What about building
QCustomPlot
yourself? You should also be able to extract a stack trace from the app when you run it in debug mode. After the crash there's a "call stack" (or something like this) in the debug view of Creator.
9/9