Problem mit undefined reference

Alles rund um die Programmierung mit Qt
Antworten
anno1988
Beiträge: 280
Registriert: 23. Januar 2009 20:49

Problem mit undefined reference

Beitrag von anno1988 »

Hallo zusammen,

ich habe da ein Problem mit der undefined reference Fehlermeldung und weiß nicht wo der Fehler liegen könnte.

Ich habe dazu 2 Testprojekte aufgesetzt, die beide auf den gleichen include path (externe lib) zugreifen und diese einbinden.

Das erste Projekt ist eine library und das 2. eine Konsolenprogramm.

Wenn ich die library compiliere funktioniert alles wunderbar, doch sobald ich das Konsolenprogramm compiliere bekomme ich immer die undefined reference Fehlermeldungen, obwohl ich die externe library genau gleich eingebunden habe.


hat da jemand eine Idee woran das liegen könnte?

Das testprojekt findet sich im Anhang
Dateianhänge
test0.7z
Testprojekte
(234.53 KiB) 114-mal heruntergeladen
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Und was fehlt genau?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
anno1988
Beiträge: 280
Registriert: 23. Januar 2009 20:49

Beitrag von anno1988 »

Hier die Fehlermeldung:

Code: Alles auswählen

Führe Build-Schritte für Projekt app_test aus...
Starte "/usr/bin/make" clean -w
make: Gehe in Verzeichnis '/home/anno/Desktop/test0/test1/test2/test3/test4/app_test'
rm -f build/obj/main.o
rm -f *~ core *.core
make: Verlasse Verzeichnis '/home/anno/Desktop/test0/test1/test2/test3/test4/app_test'
Der Prozess "/usr/bin/make" wurde normal beendet.
Unveränderte Konfiguration, qmake-Schritt wird übersprungen.
Starte "/usr/bin/make" -w
make: Gehe in Verzeichnis '/home/anno/Desktop/test0/test1/test2/test3/test4/app_test'
g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_SQL_LIB -DQT_XML_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtSql -I/usr/include/qt4 -I../../../../../qxmpp_library/src -Ibuild/moc -o build/obj/main.o src/main.cpp
g++  -o lib_test build/obj/main.o    -L/usr/lib -lQtSql -lQtXml -lQtNetwork -lQtCore -lpthread 
build/obj/main.o: In function `main':
/home/anno/Desktop/test0/test1/test2/test3/test4/app_test/src/main.cpp:18: undefined reference to `QXmppStreamFeatures::QXmppStreamFeatures()'
build/obj/main.o: In function `~QXmppStreamFeatures':
/home/anno/Desktop/test0/test1/test2/test3/test4/app_test/../../../../../qxmpp_library/src/QXmppStreamFeatures.h:31: undefined reference to `vtable for QXmppStreamFeatures'
/home/anno/Desktop/test0/test1/test2/test3/test4/app_test/../../../../../qxmpp_library/src/QXmppStreamFeatures.h:31: undefined reference to `QXmppStanza::~QXmppStanza()'
/home/anno/Desktop/test0/test1/test2/test3/test4/app_test/../../../../../qxmpp_library/src/QXmppStreamFeatures.h:31: undefined reference to `QXmppStanza::~QXmppStanza()'
collect2: ld returned 1 exit status
make: Verlasse Verzeichnis '/home/anno/Desktop/test0/test1/test2/test3/test4/app_test'
make: *** [lib_test] Fehler 1
Der Prozess "/usr/bin/make" wurde mit dem Rückgabewert %2 beendet.
Fehler beim Erstellen des Projekts app_test(Ziel: Desktop)
Bei der Ausführung von Build-Schritt 'Make'
Im Anhang nochmal als Bild.
Dateianhänge
Bildschirmfoto-1.png
Bildschirmfoto-1.png (13.11 KiB) 2903 mal betrachtet
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Du linkst Dein Executable nicht gegen die Library - also fehlen demnach auch die Funktionen aus der Library.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
anno1988
Beiträge: 280
Registriert: 23. Januar 2009 20:49

Beitrag von anno1988 »

Naja, also die externe library liegt ja als Quellcode vor und ich binde eben die Dateien ein die ich hier brauche.

Ja ok, ich denke ich muss einfach noch die source files mit in das Projekt aufnehmen.
Zuletzt geändert von anno1988 am 29. Januar 2011 16:15, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

http://doc.trolltech.com/4.7/qmake-vari ... .html#libs

Nur weil man einen Header für den Compiler einbindet heisst das nicht dass man dem Linker nicht sagen muss gegen welche Libraries er linken soll... C++ Grundlagen
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten