QT - Neue erstellte Klasse - LNK2019 bei Aufruf der neuen Klasse
-
Hallo liebe Forummitglieder,
ich weiß nicht, was ich falsch mache. Beim Aufruf einer neu erstellten Klasse in meinem Qt-Projekt erhalte ich einen Linkerfehler (LNK2019). Hier der Code:
genre.h
#ifndef GENRE_H #define GENRE_H #include <QStringList> class Genre { public: Genre(); QStringList getGenres() const; private: QStringList lstgenres; }; #endif // GENRE_H
genre.cpp
#include "genre.h" Genre::Genre() { } QStringList Genre::getGenres() { lstgenres << "Jazz" << "Pop" << "Klassik"; return lstgenres; }
mainwindow.h
#include <QMediaMetaData> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void on_btnPlay_clicked(); private: Ui::MainWindow *ui; QMediaPlayer* player; QMediaPlaylist* playlist; Genre* genre; }; #endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); //Player als Stream-Player definieren player = new QMediaPlayer(this,QMediaPlayer::StreamPlayback); //Lade Genreliste in die genre-ComboBox genre = new Genre(); ui->cmbGenre->addItems(genre->getGenres()); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_btnPlay_clicked() { player->setMedia(QUrl("http://stream.laut.fm/jazzloft")); player->setVolume(80); player->play(); }
Fehler:
mainwindow.obj Fehler: LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __cdecl Genre::Genre(void)" (??0Genre@@QEAA@XZ)" in Funktion ""public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)".
mainwindow.obj Fehler: LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: class QStringList __cdecl Genre::getGenres(void)const " (?getGenres@Genre@@QEBA?AVQStringList@@XZ)" in Funktion ""public: __cdecl MainWindow::MainWindow(class QWidget *)" (??0MainWindow@@QEAA@PEAVQWidget@@@Z)".
Fehler: LNK1120: 2 nicht aufgelöste Externe
Viele Grüße
Eric
-
Hast du die neue Klasse in die .pro Datei, in deinem Projekt, eingetragen?
-
Bennisen schrieb:
Hast du die neue Klasse in die .pro Datei, in deinem Projekt, eingetragen?
Ja
QT += core gui multimedia greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = iRadioStation TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp \ genre.cpp HEADERS += mainwindow.h \ genre.h FORMS += mainwindow.ui
-
Ich habe es herausgefunden! Es lag am verwendeten Kit und den Projekteinstellungen. Vorher hatte ich das Kit für VS2015, mit dem Kit MinGW_32Bit funktioniert es. Jetzt meckert der Linker nicht mehr!