undefined reference to

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
newyew
Beiträge: 4
Registriert: 11. August 2008 12:57

undefined reference to

Beitrag 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
solarix
Beiträge: 1133
Registriert: 7. Juni 2007 19:25

Beitrag von solarix »

Code: Alles auswählen

void test1(void)
{
    cout << "test" << endl;
} 
schau dir doch einfach nochmals diese "Methode" an...
Zuletzt geändert von solarix am 13. Juli 2009 22:50, insgesamt 1-mal geändert.
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag 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
newyew
Beiträge: 4
Registriert: 11. August 2008 12:57

Danke!

Beitrag von newyew »

Ja, das hätte ich sehen müssen!Naja, habe ich den Wald nicht gesehen. Danke!
RavenIV
Beiträge: 267
Registriert: 21. Januar 2009 14:24
Wohnort: Waldshut

Beitrag 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... ;-)
Linux, das längste Text-Adventure aller Zeiten
Antworten