LINUX.ORG.RU

При наследовании от QwtPlot приложение падает


0

1

Здравствуйте При наследовании от QwtPlot приложение падает с кодом 0xc0000005, если же юзать QwtPlot как есть, то он садится в окошко нормально. В чем может быть дело? Может Qwt как то неправильно собрал?


В чем может быть дело?

libastral говорит, что ты невнимательно читал книгу по С++ и неправильно написал код

AF ★★★
()
Ответ на: комментарий от nanoolinux

собрал Qwt 6.0.1 qmake qwt.pro mingw32-make mingw32-make install

а потом QtCreatorом сделал свой проект и вот такое несчастье. QwtPlot сам по себе работает, но если его наследовать, то приложение падает до main(). Если поможет, могу дать доступ по radmin или teamviewer

bammm
() автор топика
Ответ на: комментарий от bammm

mingw

radmin

0xc0000005

А Linux тут при том, что...

Может, какой-нибудь фрагмент кода для начала покажешь, который компилится и падает?

Atragor
()
Ответ на: комментарий от Atragor

plot.h

#ifndef PLOT_H
#define PLOT_H

#include "qwt_plot.h"

class Plot : public QwtPlot
{
    Q_OBJECT
public:
    Plot(QWidget *parent = 0);

};

#endif // PLOT_H
plot.cpp
#include "plot.h"

Plot::Plot(QWidget *parent) :
    QwtPlot(parent)
{
}

main.cpp который работает, если из проекта убрать plot.h и plot.cpp

#include <QtGui/QApplication>
#include <QMainWindow>
#include "qwt_plot.h"


int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QMainWindow w;
    QwtPlot *plot = new QwtPlot(&w);
    w.setCentralWidget(plot);
    w.show();
    
    return a.exec();
}

bammm
() автор топика

А в линуксе не падает? А что говорит отладчик? Хотя бы стек вызовов перед смертью покажи.

KblCb ★★★★★
()
Ответ на: комментарий от KblCb

В линуксе не пробовал пока. Код правильный мне кажется.. Отладчик не начинается, так как приложение умирает еще до старта.

Щас увидел такую надпись в compiler output:

d:/qtsdk/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.
Видимо в этом проблема? Я то наследуюсь от QwtPlot который в библиотеке.

Куда вписать --enable-auto-import в QtCreator? — это слеш в винде как я понимаю?

bammm
() автор топика
Ответ на: комментарий от bammm

Точно, проблема была в этом.

В файле

QtSDK/desktop/Qt/4.7.4/mingw/mkspecs/win32-g++/qmake.conf

нашел пустой QMAKE_LFLAGS и сделал его

QMAKE_LFLAGS		= -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

bammm
() автор топика
Ответ на: комментарий от bammm

Ты жесток )

Посмотри лучше, как собираются примеры из qwt. Они инклюдят файл с настройками. Тебе дето так же надо сделать

AF ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.