Błąd PRIVATE SLOTS - biblioteka Qt

0

Witam na wstępie wszystkich.
Nie wiedziałem gdzie mogę utworzyć temat o takim charakterze więc tworzę tu.

Zaczynam przygodę z biblioteką Qt i po wielu wielu walkach z kompilatorem napotkałem inny błąd prawdopodobnie Q_OBJECT

Wszystko było dobrze do momentu gdy zadeklarowałem w pliku nagłówkowym coś takiego:

 private slots:
     void liczba();

Debugger znalazł błąd w pliku moc.mainwindow.cpp : "undefined reference to MainWindow::liczba()"
Kod wiersza:

 case 0: _t->liczba();

Wpadłem na trop, że chodzi tu o przepuszczenie nagłówków przez moc.exe
Na stronie http://qt-project.org/doc/qt-5.0/qtdoc/moc.html niby pisze co i jak, ale nie mogę sobie z tym poradzić...

Może ktoś lepiej wpadnie na trop (rozdział: Writing Make Rules for Invoking moc).
Bardzo proszę o pomoc.

1

Kompilujesz z konsoli czy używasz np. Qt Creatora?
Jeśli to pierwsze, to uruchom qmake.
Jeśli to drugie, to w menu wybierz Build | Run qmake.

W obu przypadkach plik .cpp powinien być dodany do projektu.

0

Kompiluję przez Qt Creator'a.
Albo robię coś nie tak, albo to nie pomaga.

Uruchamiam qmake, a następnie buduję i te same błędy.

Mój kod nagłówka:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

private slots:
    void sss();


public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

Błędy:

C:\Users\Admin\Desktop\build-nienazwany-Desktop_Qt_5_2_0_MinGW_32bit-Debug\debug\moc_mainwindow.o:-1: In function `ZN10MainWindow18qt_static_metacallEP7QObjectN11QMetaObject4CallEiPPv':

C:\Users\Admin\Desktop\build-nienazwany-Desktop_Qt_5_2_0_MinGW_32bit-Debug\debug\moc_mainwindow.cpp:67: błąd: undefined reference to `MainWindow::sss()'

collect2.exe:-1: błąd: error: ld returned 1 exit status

W pliku moc_.cpp występuje błąd w wierszu

case 0: _t->sss(); break;

.
Gdy wyrzucę tę linijkę program buduje pomyślnie

PROBLEM ROZWIĄZANY.
Doszukując się błędu poza kodem błąd znalazł się w pliku cpp...
Okazało się, że mam źle wyskrobaną funkcję.

Dziękuję koledze za pomoc i naprowadzenie na kod.cpp :)

0

gdzieś definicja funkcji sss() musi być…

1 użytkowników online, w tym zalogowanych: 0, gości: 1