undefined reference : ich finde den Fehler nicht



  • Ich erhalte folgenden Fehler

    /src/mainwindow.cpp:37: undefined reference to `widgetMicosPolluxControllerSettings::widgetMicosPolluxControllerSettings(QWidget*)'

    Der Code is folgender:

    #define MAINWINDOW_H
    
    #include <QtGui/QMainWindow>
    class widgetMicosPolluxControllerSettings;
    
    namespace Ui
    {
        class MainWindowClass;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    public:
        MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private:
        void initValues();
    
    private:
        widgetMicosPolluxControllerSettings* dlgMicosPolluxControllerSettings;
    };
    #endif // MAINWINDOW_H
    
    void MainWindow::initValues()
    {
        dlgMicosPolluxControllerSettings = new widgetMicosPolluxControllerSettings(this);
    }
    
    #ifndef WIDGETMICOSPOLLUXCONTROLLERSETTINGS_H
    #define WIDGETMICOSPOLLUXCONTROLLERSETTINGS_H
    
    #include <QWidget>
    
    namespace Ui
    {
        class widgetMicosPolluxControllerSettingsClass;
    }
    
    class widgetMicosPolluxControllerSettings : public QWidget
    {
    Q_OBJECT
    public:
        explicit widgetMicosPolluxControllerSettings(QWidget *parent = 0);
        ~widgetMicosPolluxControllerSettings();
    
    private:
        void initWidgets();
    
    private:
        Ui::widgetMicosPolluxControllerSettingsClass * ui;
    
    };
    #endif // WIDGETMICOSPOLLUXCONTROLLERSETTINGS_H
    
    #include "widgetMicosPolluxControllerSettings.h"
    #include "ui_widgetMicosPolluxControllerSettings.h"
    
    widgetMicosPolluxControllerSettings::widgetMicosPolluxControllerSettings(QWidget *parent)
        :   QWidget(parent)
        ,   ui(new Ui::widgetMicosPolluxControllerSettingsClass)
    {
        initWidgets();
    }
    
    widgetMicosPolluxControllerSettings::~widgetMicosPolluxControllerSettings()
    {
        delete ui;
    }
    

    was mache ich falsch?



  • In deinem zweiten Code-Fragment fehlt: #include "widgetMicosPolluxControllerSettings.h"



  • Fellhuhn schrieb:

    In deinem zweiten Code-Fragment fehlt: #include "widgetMicosPolluxControllerSettings.h"

    Nicht wirklich, hier der komplete Code:

    #include "ui_mainwindow.h"
    #include "QMicosPolluxController.h"
    #include "widgetMicosPolluxControllerSettings.h"
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::MainWindowClass)
        , controller(new QMicosPolluxController)
    {
        ui->setupUi(this);    
        connectSignalSlots();
        initValues();
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
        delete controller;
    }
    
    void MainWindow::connectSignalSlots()
    {
        connect(ui->actionQuit, SIGNAL(triggered()), this, SLOT(OnActionQuit()));
    }
    
    void MainWindow::OnActionQuit()
    {
        close();
    }
    
    void MainWindow::initValues()
    {
        dlgMicosPolluxControllerSettings = new widgetMicosPolluxControllerSettings(this);
    }
    


  • undefined reference beim GCC heißt doch, dass der Linker ein Symbol nicht auflösen konnte, und nicht, dass dem Compiler was fehlt. Hast du alle nötigen QT-Libs gelinked?

    PS: ich will das 1:1 oO



  • Pellaeon schrieb:

    undefined reference beim GCC heißt doch, dass der Linker ein Symbol nicht auflösen konnte, und nicht, dass dem Compiler was fehlt. Hast du alle nötigen QT-Libs gelinked?

    Die nicht aufgelöste Referenz ist bestandteil einer auf Qt aufbauenden dll.
    Da wo der Fehler auftritt wird diese DLL geladen. Bei anderen Bestandteilen der dll habe ich auch kein Problem.

    Wenn ich statt der DLL, den Code direkt im Beispielprojekt lade, dann bekomme ich keinen Linker Fehler.

    EDIT:
    Fehler gefunden, es fehlte ein 'QPOLLUX_EXPORT'

    #include "QMicosPolluxControllerGlobal.h"
    
    class QPOLLUX_EXPORT widgetMicosPolluxControllerSettings : public QWidget
    

Log in to reply