I have compiled Qwt 6.3.0 and see that the headers and the libs have been placed in
/usr/local/qwt-6.3.0/include/
and
/usr/local/qwt-6.3.0/lib/
respectively.
I have build a Qt 6.7.0 app. using the following CMakeLists file:
set(QWT_INCLUDE_DIR "/usr/local/qwt-6.3.0/include")
set(QWT_LIBRARY "/usr/local/qwt-6.3.0/lib/libqwt.so")
set(qwt_libraries ${QWT_LIBRARY}})
set(test_SRC
src/main.cpp
src/test.cpp
src/Plot.cpp
)
add_executable(test ${test_SRC})
target_link_libraries(test Qt6::Widgets ${QWT_LIBRARY})
Compiling the program and running it in the debugegr it craches with the error message:
QWidget: Must construct a QApplication before a QWidget
*** Program received signal SIGABRT (Aborted) ***
In main I have
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
test w;
w.show();
return app.exec();
}
which I think is correct.
In MainWindow (i,e, test):
test::test(QWidget *parent) :
QMainWindow(parent),
m_ui(new Ui::test)
{
qDebug() << "test::test 0";
qDebug() << qApp;
qDebug() << "test::test 1";
m_ui->setupUi(this);
qDebug() << "test::test 2";
m_plot = new Plot(this);
qDebug() << "test::test 3";
Starting the debugger yields:
test::test 0
QApplication(0x7ffde3f14770)
test::test 1
test::test 2
QWidget: Must construct a QApplication before a QWidget
*** Program received signal SIGABRT (Aborted) ***
test::test 3 is never printed out, so it seems the crash happens in the Plot constructor:
Plot::Plot(QWidget *parent)
: QwtPlot( parent )
{
qDebug() << "Plot::Plot 1";
Again, Plot::Plot 1 is not printed out.
Can it be that Qt 6.7.0 and Qwt 6.3.0 are incompatible?
Bookmarks