Verständnisprobleme bei "undefined reference to"-Fehler
-
Bei qmake tritt kein Fehler auf.
12:26:53: Führe Schritte für Projekt Worker4Music aus... 12:26:53: Starte "/usr/lib/x86_64-linux-gnu/qt5/bin/qmake" /home/proton/Dev/Worker4Music/Worker4Music.pro -r -spec linux-g++-64 CONFIG+=debug 12:26:53: Der Prozess "/usr/lib/x86_64-linux-gnu/qt5/bin/qmake" wurde normal beendet. 12:26:53: Verstrichene Zeit: 00:00.
-
dann schau dir das doch mal genauer an.
/home/proton/Dev/build-Worker4Music-Desktop-Debug/../Worker4Music/musicbrain.cpp:28: undefined reference to `MusicBrainz5::CQuery::~CQuery()'
Was steht denn dort in der musicbrain?
-
Der Quelltext sieht wie folgt aus:
http://pastebin.com/C3q3SsU0Den habe ich aber nur hier https://github.com/metabrainz/libmusicbrainz/blob/master/examples/cdlookup.cc
rauskopiert. Alles was danach kommt ist auskommentiert.
Ich habe es mit einem anderen Konstruktor versucht
(Musicbrain-API), aber ohne Erfolg.
-
Also wenn du das hier angibst
using namespace MusicBrainz5;
dann brauchst du kein MusicBrainz5:: vor
MusicBrainz5::CQuery Query("cdlookupexample-1.0", "musicbrainz.org", 80);
schreiben.
normal würde ein
CQuery Query("cdlookupexample-1.0");
reichen.
-
Das weiß ich, ich habe es nur mal zur Sicherheit reingesetzt, weil es eigentlich keinen negativen Auswirkungen haben dürfte, wenn es trotzdem dabei steht.
Wie gesagt, ich habe das Beispiel kopiert und ausprobiert und da stand der Namespace natürlich nicht dabei.
-
Dann weiß ich leider auch nicht. Kann dir nur raten nochmal deine .pro Datei aufzuräumen. Auch wenn die Einträge automatisch eingefügt wurden finde ich sie dennoch sehr unschön. Informiere dich mal wie man eine Bibliothek sauber in einer .pro Datei hinzufügt und mach das mal.
-
Ist denn die libmusucbrainz5.so noch in Ordnung?
Was sagt einreadelf -Ws /usr/lib64/libmusicbrainz5.so | grep CQuery
(Pfad zur libmuscbrainz5.so bitte anpassen falls die lib nicht in /usr/lib64 liegt)
Wie hast du musicbrainz installiert?
-
Das Problem saß mal wieder 80cm vorm Bildschirm.
Ich wollte gestern Abend mal ausprobieren die Bibliothek in ein Verzeichnis
innerhalb des Projekts zu kopieren, dabei ist mir aufgefallen,
dass beim kompilieren auch noch eine andere Bibliothek erstellt wurde,
nämlich eine libmusicbrainz5cc.so.
Dann habe ich diese eingebunden und siehe da, das Projekt kompiliert.Ich muss dazu sagen, dass ich bisher davon ausgegangen bin, dass man ohne Problem
auch C-Bibliotheken einbinde könnte, aber da wurde ich jetzt eines besseren belehrt.Nichtsdestotrotz, vielen Dank für die Hilfe!
Schönen Gruß
Proton
-
Proton23 schrieb:
Ich muss dazu sagen, dass ich bisher davon ausgegangen bin, dass man ohne Problem
auch C-Bibliotheken einbinde könnte, aber da wurde ich jetzt eines besseren belehrt.Was hat ein Schreibfehler damit zu tun wie Problemlos man eine C-Bibliothek einbinden kann?
-
Das war kein Schreibfehler (es gibt sowohl die Datei libmusicbrainz5.so als auch
die Datei libmusicbrainz5cc.so) sondern die Bibliothek wurde, nach meinem Verständnis,
einmal mit C-Einstellungen und C-Compiler erstellt und das gleiche einmal für C++.
Sollte ich da falsch liegen lasse ich mich gerne belehren, weil ich dann keinen Schimmer
habe warum es mit der libmusicbrainz5cc.so funktioniert und mit der libmusicbrainz5.so nicht.SG
Proton