Tässä olisi vähän lisähavaintoja. Yritin selvittää asiaa koodia poistamalla ohjelmasta rivejä.
Ohjelma on nyt aika lyhyt, ja se näyttä vain qwt:n kaavion ilman kuvaajaa. Käänsin sen 12.04 koneella, jossa on qt ja qwt viime keväältä.
#include <QApplication>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QwtPlot *myPlot = new QwtPlot;
myPlot->show();
return a.exec();
}
ja tässä vielä pro-tiedosto
######################################################################
# Automatically generated by qmake (3.0) ma maaliskuuta 23 13:10:22 2015
######################################################################
TEMPLATE = app
TARGET = qwtkoe01
INCLUDEPATH += .
# Input
SOURCES += qwtkoe01.cpp
QT += widgets
# nämä rivit on lisättävä käsin, ainakin ennen toimi näillä
CONFIG += qwt
INCLUDEPATH += /usr/include/qwt
LIBS += -lqwt
Virheinä tulee ohjelmaa ajettaessa nyt virheellien osoite
mini@mini:~/qt/harjoittelu2/qwtkoe01$ make
g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++-64 -I. -I. -I/usr/include/qwt -I/usr/include/qt5 -I/usr/include/qt5/QtWidgets -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o qwtkoe01.o qwtkoe01.cpp
g++ -m64 -Wl,-O1 -o qwtkoe01 qwtkoe01.o -L/usr/X11R6/lib64 -lqwt -lQt5Widgets -L/usr/lib/x86_64-linux-gnu -lQt5Gui -lQt5Core -lGL -lpthread
mini@mini:~/qt/harjoittelu2/qwtkoe01$ ./qwtkoe01
*** Error in `./qwtkoe01': realloc(): invalid pointer: 0x00007ff0cf3c1840 ***
Keskeytetty (luotiin core-tiedosto)
Sellainen ero 12.04 - ja 14.04 - koneiden välillä ainakin on, että QT += widgets ei tunnistu 12.04 - koneessa, mutta siinä ohjelmat kääntyvät ja toimivat, kun widgetsin kommentoi pois. Käännetty ohjelma toimi sitten 14.04 - koneessakin.
Kyse on luultavastikin versioeroista, vaikka olin asentavinani kumpaankin koneeseen qwt:n ja qt:n samoilla komennoilla, mutta 12.04 - koneeseen siis viime keväänä, muistaakseni.
Nytkin yritin qt:n, qwt:n ja g++:n asentamista niin, että poistin kaikki löytämäni qt- tai qwt- aiheiset tiedostot koneelta ennen uutta asennusta päätteestä. Toivottavasti mitään vanhaa ei jäänyt sotkemaan, mutta sen olisi varmaan apt-get osannut kirjoittaa päälle.
Jos jollain kokeiluohjelmani toimii 14.04 versiossa, voin taas yrittää vaikka poistaa kaikki qt- ja qwt-aiheiset tiedostot ja yrittää asennusta apt-getillä vielä uudestaan.