DXR3 Plugin - Fehler beim Compilieren

  • Hallo zusammen,


    habe Probleme meine DXR3 (Hollywood+) mittels VDR Plugin zu nutzen.
    VDR funktioniert, nur das dxr3 Plugin lässt sich nicht übersetzen.
    Die Module für die DXR3 wurden Problemlos installiert.


    Komme nun nicht weiter, und brauche Hilfe DANKE!


    Jürgen


    Hier die Ausgabe von 'make plugins'


    Juliane:/home/rilo/Download/linux/VDR # make plugins
    make[1]: Wechsel in das Verzeichnis Verzeichnis »/home/rilo/Download/linux/VDR/PLUGINS/src/dxr3-0.2.1«
    make[1]: Verlassen des Verzeichnisses Verzeichnis »/home/rilo/Download/linux/VDR/PLUGINS/src/dxr3-0.2.1«
    make[1]: Wechsel in das Verzeichnis Verzeichnis »/home/rilo/Download/linux/VDR/PLUGINS/src/dxr3-0.2.1«
    g++ -O2 -Wall -Woverloaded-virtual -c -DPLUGIN_NAME_I18N='"dxr3"' -DSOCKET_CHMOD=0660 -I../../../include -I../../../../DVB/include -I../../../../ffmpeg dxr3.c
    In file included from /usr/include/g++/stl_algobase.h:39,
    from /usr/include/g++/stl_tree.h:56,
    from /usr/include/g++/set:31,
    from ../../../include/vdr/config.h:13,
    from dxr3vdrincludes.h:19,
    from dxr3.c:9:
    /usr/include/g++/stl_relops.h:36: syntax error before `template'
    In file included from /usr/include/g++/stl_algobase.h:42,
    from /usr/include/g++/stl_tree.h:56,
    from /usr/include/g++/set:31,
    from ../../../include/vdr/config.h:13,
    from dxr3vdrincludes.h:19,
    from dxr3.c:9:
    /usr/include/g++/stl_pair.h:36: syntax error before `template'
    /usr/include/g++/stl_pair.h:39: syntax error before `;'
    /usr/include/g++/stl_pair.h:41: syntax error before `;'
    /usr/include/g++/stl_pair.h:42: syntax error before `;'
    /usr/include/g++/stl_pair.h: In function `int pair()':
    /usr/include/g++/stl_pair.h:43: base initializers not allowed for non-member functions
    /usr/include/g++/stl_pair.h:43: implicit declaration of function `int _T1(...)'
    /usr/include/g++/stl_pair.h:43: implicit declaration of function `int _T2(...)'
    /usr/include/g++/stl_pair.h:43: warning: control reaches end of non-void function `pair()'

  • Moin,


    mit was für einer Distribution (besser Compiler-Version) arbeitest Du denn ?
    Derartige Fehler haben deuten auf irgenwelche Unstimmigkeiten mit der STL
    (Standard Template Library)-Implementierung des verwendeten Compilers hin.
    Das DXR3-plugin wurde erfolgreich mit gcc 2.95 und 3.2 kompiliert (wenn ich mich nicht irre).


    Gruß
    Stefan.

  • hi,


    schau doch mal ob du alle packete die nötig sind installiert hast, bei vdrportal.de gibts irgendwo eine liste welche packete bei suse installiert sein müssen


    btw hast du irgendwelche online updates auf die suse 8.0 losgelassen?

  • Hi,


    also ich nehme in der Regel immer nur die Quellen und installiere dann mit checkinstall. Compilierungsfehler dieser Art sind dabei nie aufgetreten.


    Installiere auch nicht ohne die Abhängigkeiten gelöst zu haben.
    Die anderen Plugins (1.25) werden auch ohne Fehler compiliert.


    Werde aber trotzdem mal die Liste überprüfen!


    Juergen

  • hi,


    ich habe mal ein wenig gegoogelt
    sieht wohl doch nach einem problem mit dem C aus




    "You are using an older g++ version, 2.95.x maybe. Newer g++ versions also
    include an updated version of the STL which defines everything in the std::
    namespace thereby avoiding those conflicts."




    "STL's definition off swap collides with vdr's definition of swap. The
    STL should not define anything in the root namespace (as it does there),
    all definitions should live in the std:: namespace. Newer version
    included with gcc-3.x fix that."




    > > make[1]: Entering directory
    > > `/usr/local/src/VDR/PLUGINS/src/osdteletext-0.2' g++ -O2 -g -Wall
    > > -Woverloaded-virtual -c
    > > -DPLUGIN_NAME_I18N='"osdteletext"' -I../../../include
    > > -I../../../../DVB/include menu.c
    > > menu.c:84: warning: `/*' within comment
    > > In file included from /usr/include/g++/stl_tree.h:56,
    > > from /usr/include/g++/map:31,
    > > from menu.c:14:
    > > /usr/include/g++/stl_algobase.h:76: redefinition of `template <class
    > > _Tp> void swap(_Tp &, _Tp &)'
    > > ../../../include/vdr/tools.h:52: `template <class T> void swap(T &, T
    > > &)' previously declared here
    > > /usr/include/g++/stl_algobase.h:76: redefinition of `void swap(_Tp &,
    > > _Tp &)'
    > > ../../../include/vdr/tools.h:52: `void swap(T &, T &)' previously
    > > defined here
    >
    > The problem is triggered by the lines 48-53 in vdr/tools.h. There "swap" is
    > redefined, in an ifndef __STL_CONFIG_H, the comment says "in case some plugin
    > needs to use the STL". Yes I do use the STL. Obviously on your system this
    > define was not defined.
    > Does anyone know what this is about?
    > Perhaps a problem with gcc or its includes?


    The STL also defines a swap() function, which can't coexist with VDR's
    definition. So I surrounded it with an #ifdef that checks for a macro that
    is defined in the STL header file - or at least used to be defined in the version
    on my SuSE 7.3. Maybe the STL guys have changed that in the meantime...

  • Also STL updaten wird auch nichts. Kommen dann Fehler, wie unzulässige Zeichen im Makronamen.
    Das bedeutet also:


    Suse 8.0 mit 'gcc 2.95' 'Kernel 2.4.18-4GB' geht vdr mit 'dxr3' nicht!


    Oder hat das so jemand am laufen?


    Was mich wundert, das 'xine' da kein Problem hat. Nur hätte ich gerne den vdr wegen aufnehmen.


    ;(


    Juergen

  • Moin,


    wenn mich nicht alles täuscht, dann hatte ich das plugin auch mit der SuSe 8.0 am Laufen.
    Zur Zeit benutze ich auf meinem Arbeitsplatzrechner sogar noch ein SuSe 7.1 mit gcc 2.95.2 ohne Probleme.


    Das xine-"Problem" ist leicht zu erklären. Xine benutzt meines Wissens keine STL und wird damit dann auch keine Probleme haben.
    Das DXR3-Plugin setzt aber auf der STL auf.


    Gruß
    Stefan.

Jetzt mitmachen!

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