Frage zu "undefined symbol"

  • Hallo nochmal,


    nachdem mir meine Gentoo-Installationen gestern Abend auch den gcc-4.8 angeboten haben, habe ich diesen auf meinem Entwicklungsrechner installiert und etwas damit herumprobiert: Tatsächlich startet damit das Plugin auch bei mir nicht mehr, d.h. ich habe eigenen "Leidensdruck", die Sache wieder zum Laufen zu bekommen :)


    mini73: Danke, für den Link. Das Plugin versucht aber nicht, die zu den OsdMenu/MenuHelpKeys (Templates) gehörigen cpp-Files separat zu übersetzen, sondern die Header-Files includieren die cpp-Files, d.h. die Implementierung der Methoden ist dadurch im Header zu finden.


    Der Fehler war eher, dass ich den Inhalt der cpp-Files nochmal gegen doppeltes Includieren per #defines 'geschützt' habe. Warum allerdings die Compiler sich unterschiedlich verhalten (bzw. auch die -O-Flags hierauf einen Einfluß haben), verstehe ich spontan nicht bzw. habe jetzt nicht die Zeit und Muße, mich da hineinzudenken.


    Ich habe jetzt aus den beiden betreffenden .cpp-Files (im include-Verzeichnis) die #ifdef...#define...#endif-Konstruktion entfernt und damit kein Problem mehr beim Start von vdr. Dadurch kann ich nun auch im Plugin-Makefile das "-O2" entfernen und das Plugin mit den zentral konfigurierten Flags (-O3) compilieren und starten. Getestet unter Gentoo mit vdr-2.0.5 und gcc-4.7 und vdr-2.1.6 mit gcc-4.7 und 4.8 (jeweils 64-Bit).


    Ich schaue mir jetzt noch mal die Sache mit den MenuCategories an und stelle dann wohl ein Päckchen zum Test bereit.


    bye, Alex

  • Ok. Ich hatte mir den Source nicht so genau angesehen, mur war nur aufgefallen, dass es getrennte Dateien gibt. Das darf man bei templates eben nicht machen bzw. muss dafür sorgen, dass die Header, die das template einbinden und benutzen wollen, immer die komplette template-Klasse inkl. Implementation sieht. Dann sollte alles passen.


    Lars

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!