Fehler "undefined reference to..." in der moc_mainwindow.cpp



  • Hallo,
    ich habe zwei Fehlermeldungen:

    1: "undefined reference to "'MainWindow::on_pushButton_3_clicked()'"
    2. "error: id returned 1 exit status"

    Der zweite Fehler ist in der "moc_mainwindow.cpp" zu finden.

    Ich beschreibe euch mal, wie der Fehler zu stande gekommen ist:
    Ich habe einen Button im Designer erstellt (pushButton_3) und dann mit Rechtsklick auf den Button geklickt auf "Slot anzeigen...".
    Dann habe ich den Button im Designer umbenannt (also den Namen) in "schliessen", und habe wieder auf "Slot anzeigen..." geklickt. In der mainwindow.cpp habe ich nun 2 Slots. Den einen alten Slot (pushButton_3) habe ich gelöscht. Seitdem bekomme ich diese Fehlermeldung.

    Hier einmal der moc_mainwindow.cpp-Ausschnitt mit dem Fehler:

    void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
    {
        if (_c == QMetaObject::InvokeMetaMethod) {
            MainWindow *_t = static_cast<MainWindow *>(_o);
            switch (_id) {
            case 0: _t->on_pushButton_clicked(); break;
            case 1: _t->on_pushButton_2_clicked(); break;
            case 2: _t->on_pushButton_3_clicked(); break;
            case 3: _t->on_schliessen_clicked(); break;
            default: ;
            }
        }
        Q_UNUSED(_a);
    }
    

    Jetzt habe ich einfach die Zeile:

    case 2: _t->on_pushButton_3_clicked(); break;
    

    entfernt. Nun startet das Programm auch und es funktioniert alles.

    Nun steht aber in der Ausgabe in pinker Schrift "QMetaObject::connectSlotsByName: No matching signal for on_pushButton_3_clicked()"

    Wie bekomme ich das nun weg?
    Vielen Dank im Voraus für jede Mühe!



  • steht in der mainwindow.h unter Slots: eventuell noch void on_pushButton_3_clicked();.



  • die Änderungen die nachträglich an der ui Datei vorgenommen werden, werden nicht immer weiterverarbeitet d.h. in die moc Dateien übernommen.
    Am besten im Menü->Bearbeiten wählen
    "alles bereinigen",
    "gmake ausführen" und
    "alles neu erstellen"


Anmelden zum Antworten