Seite 1 von 1

undefined reference to

Verfasst: 13. Juli 2009 22:39
von newyew
Hallo,

habe ein kleines Problem. Ich habe eine Klasse definiert:

Code: Alles auswählen

#ifndef PRESENTATION_VIEW_H
#define PRESENTATION_VIEW_H

#include <QWidget>
#include <poppler-qt4.h>

class Presentation// : public QWidget
{
public:
    Presentation(Poppler::Document* Document);
    void test1(void);
    ~Presentation();
};

#endif // PRESENTATION_VIEW_H

und

Code: Alles auswählen

#include "presentation_view.h"
#include <iostream>

using namespace std;

Presentation::Presentation(Poppler::Document* Document)
{
    cout << "Präsentation erzeugt " << endl;
}

void test1(void)
{
    cout << "test" << endl;
}

Presentation::~Presentation()
{

}
Leider bekomme ich immer eine Fehlermeldung beim übersetzen:

Code: Alles auswählen

make: Entering directory `/home/lars/Daten/Bearbeitung/Slidy/slidy'
g++ -m64 -o slidy main.o slidy.o presentation_view.o moc_slidy.o -L/usr/lib -L/usr/lib -lpoppler-qt4 -lQtGui -L/usr/X11R6/lib64 -pthread -lpng -lfreetype -lgobject-2.0 -lSM -lICE -pthread -pthread -lXrender -lfontconfig -lXext -lX11 -lQtCore -lz -lm -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread
slidy.o: In function `Slidy':
/home/lars/Daten/Bearbeitung/Slidy/slidy/slidy.cpp:17: undefined reference to `Presentation::test1()'
/home/lars/Daten/Bearbeitung/Slidy/slidy/slidy.cpp:17: undefined reference to `Presentation::test1()'
collect2: ld gab 1 als Ende-Status zurück
Wenn ich die Fehlerstelle auskommentieren, dann wird übersetzt und auch der Konstrutor aufgerufen. Mir wird die Methode "test1()" auch von der Codevervollständigung angeboten. Qmake stehen die Dateien auch drin:

Code: Alles auswählen


TARGET = slidy
TEMPLATE = app
INCLUDEPATH += /usr/include/poppler/qt4/
LIBS += -L/usr/lib \
    -lpoppler-qt4
SOURCES += main.cpp \
    slidy.cpp \
    presentation_view.cpp
HEADERS += slidy.h \
    presentation_view.h
FORMS += 
Kann mir jemand sagen, wo mein Denkfehler liegt?

Danke

Verfasst: 13. Juli 2009 22:49
von solarix

Code: Alles auswählen

void test1(void)
{
    cout << "test" << endl;
} 
schau dir doch einfach nochmals diese "Methode" an...

Verfasst: 13. Juli 2009 22:49
von MiKla

Code: Alles auswählen

void test1(void) 
{ 
    cout << "test" << endl; 
} 
sollte bestimmt:

Code: Alles auswählen

void Presentation::test1(void) 
{ 
    cout << "test" << endl; 
} 
heissen

Micha

Danke!

Verfasst: 13. Juli 2009 23:11
von newyew
Ja, das hätte ich sehen müssen!Naja, habe ich den Wald nicht gesehen. Danke!

Verfasst: 14. Juli 2009 08:54
von RavenIV
Michael.Klank hat geschrieben: sollte bestimmt:

Code: Alles auswählen

void Presentation::test1(void) 
{ 
    cout << "test" << endl; 
} 
heissen
ganz typischer Fehler.
Passiert mir auch hin und wieder... ;-)