GStreamer einbinden
-
Hallo,
habe das nachfolgende Post vor zwei Tagen auch im deutschen Eclipse-Forum eingestellt - aber vielleicht ist es ja gar kein spezielles Eclipseproblem und in diesem Forum ist vielleicht jemand, der eine Idee hat, was ich falsch mache oder tun kann ....
nachdem ich nun einige Tage gegoogelt und zahlreiche Versuche unternommen habe, bleibt das Problem bestehen:
Ich versuche GStreamer einzubinden.
Bei einer einfach Initializierung scheitert es bereits:
#include <gst/gst.h> int main() { int a = 1; char b[] = "Test", *bPtr, **bbPtr; bPtr = b; *bbPtr = bPtr; // Initialisierung GStreamer gst_init (&a, &bbPtr ); return 0; }
Auf der Konole erscheint dann:
make -k all Building file: ../filmablauf.cpp Invoking: GCC C++ Compiler g++ -I/opt/gnome/include/gstreamer-0.10 -I/opt/gnome/include/gtkmm-2.4 -I/usr/bin -I/opt/gnome/lib64/glib-2.0/include -I/opt/gnome/include/glib-2.0 -O0 -g3 -Wall -MMD -MP -MF"filmablauf.d" -MT"filmablauf.d" -o"filmablauf.o" "../filmablauf.cpp" /tmp/cckG7JX8.o: In function `main': ../filmablauf.cpp:27: [b]undefined reference to `gst_init'[/b] collect2: ld returned 1 exit status make: *** [filmablauf.o] Fehler 1 make: Das Target »all« wurde wegen Fehlern nicht aktualisiert. Build complete for project Film
Die GStreamer-0.10 Bibliothek ist mit korrekter Pfadangabe eingebunden im Linker.
Die Include-Dateien sind ebenfalls korrekt im Compiler eingebunden.Wenn ich die Include-Dateien über die Eclipse-Gliederung aufrufe erscheinen sie genauso korrekt, wie über das Eclipse-Includeverzeichnis im Projektfenster.
Die gst.h deklariert die init-Funktion. Ob die Header-Datei mit der Definition vorhanden ist, vermag ich bei der Vielzahl der Header-Dateien nicht zu sagen. Die Suche danach hat nichts ergeben.
Da ich GStreamer aus dem Suse-Paket genommen habe, gehe ich von einer korrekten Installation aus.Das glib-Paket ist ebenfalls vorhanden und mMn korrekt installiert.
Alles findet auf Suse 10.1 und Eclipse 3.2 statt und das Projekt ist ein Managed Make.
Ich hoffe, mir kann jemand weiterhelfen.
Axel
-
Arlecchino schrieb:
g++ -I/opt/gnome/include/gstreamer-0.10 -I/opt/gnome/include/gtkmm-2.4 -I/usr/bin -I/opt/gnome/lib64/glib-2.0/include -I/opt/gnome/include/glib-2.0 -O0 -g3 -Wall -MMD -MP -MF"filmablauf.d" -MT"filmablauf.d" -o"filmablauf.o" "../filmablauf.cpp" /tmp/cckG7JX8.o: In function `main': ../filmablauf.cpp:27: [b]undefined reference to `gst_init'[/b] collect2: ld returned 1 exit status
Ohne mir den Rest angesehen zu haben: Normalerweise müsste da auch irgendwo ein "-lgstreamer -lWAS_DU_SONST_NOCH_SO_BRAUCHST" und evtl. auch ein "-L/pfad/zu/deinen/libraries" oä drinstehen.
-
Hallo nman,
erstmal danke für Deinen Versuch mir zu helfen.
Allerdings habe ich mich bemüht, möglichst genaue Angaben zu meinem Problem zu machen, drum hätte ein Weiterlesen Dir diese Information gegeben:Die GStreamer-0.10 Bibliothek ist mit korrekter Pfadangabe eingebunden im Linker.
Die Include-Dateien sind ebenfalls korrekt im Compiler eingebunden.Der Grund, warum der Aufruf in der Konsolenausgabe nicht angezeigt wird, liegt darin begründet, dass der Compiler vorher abbricht - also der Linker gar nicht erst aufgerufen wird.
Axel
-
Arlecchino schrieb:
Allerdings habe ich mich bemüht, möglichst genaue Angaben zu meinem Problem zu machen, drum hätte ein Weiterlesen Dir diese Information gegeben:
Die GStreamer-0.10 Bibliothek ist mit korrekter Pfadangabe eingebunden im Linker.
Die Include-Dateien sind ebenfalls korrekt im Compiler eingebunden.Der Grund, warum der Aufruf in der Konsolenausgabe nicht angezeigt wird, liegt darin begründet, dass der Compiler vorher abbricht - also der Linker gar nicht erst aufgerufen wird.
Ich habe Deinen Post gelesen.
Und natürlich liegt das Problem beim Linker. "Undefined References" sind immer Linker-Probleme und "ld returned 1 exit status" deutet ja auch bereits darauf hin, dass der man: ld(1) irgendwas nicht schlucken wollte. Und ld ist - richtig geraten - der Linker.
-
Und ld ist - richtig geraten - der Linker.
Siehste, das hab ich nicht gewußt!
Hat schon 'n Grund, dass ich hier nachgefragt habeWerde am Montag an der Stelle ansetzen ...
Ersteinmal Dank.Axel