[gelöst] undefined symbol: _ZN6cTimerC1EPK6cEvent bei Plugins mit 2.6.0

  • Hallo Forum,


    ich bin dabei vdr 2.6.0 auf einem Debian 9.13 (Organge Pi) aufzusetzen.


    Die vdr Binary konne ich mit make und make install erfolgreich compilieren und sie läuft auch.


    Beim compilieren der Plugins komme ich allerdings nicht weiter. Teilweise scheitert schon das "make install-plugins". Bei anderen Plugins funktioniert das zwar noch, aber dann beim Starten der vdr-binary erhalte ich dann ein "undefined symbol: _ZN6cTimerC1EPK6cEvent"

    Bei einigen Plugins erhalte ich den Fehler schon beim make install-plugins, bei anderen erst beim starten des vdr.


    Kann mir da jemand einen Tipp geben?



    ich hätte den vdr gerne mit folgenden zusätzlichen Plugins compiliert:


    vnsiserver

    epgsearch

    live

    vdrmanager



    danke

  • Wenig Infos, ich versuche mal zu raten:

    Der Fehler kommt i.A. davon, dass die ABI Version von Plugins und VDR nicht zusammen passen.

    Schaue mal dir mal die Libs der Plugins an (normalerweise bei Debian in /usr/lib/vdr/plugins), ist Filedatum = Compile Datum ?

    Was sagt vdr --version ?

  • Hier die Ausgabe von vdr --version der 2.6.0 Version:


    vdr: /usr/local/lib/vdr/libvdr-vnsiserver.so.2.6.0: undefined symbol: _ZN6cTimerC1EPK6cEvent

    vdr (2.6.0/2.6.0) - The Video Disk Recorder

    epgtableid0 (2.4.0) - EPG handler for events with table id 0x00

    hello (2.4.0) - A friendly greeting

    osddemo (2.4.1) - Demo of arbitrary OSD setup

    pictures (2.4.0) - A simple picture viewer

    status (2.4.0) - Status monitor test

    svccli (2.4.0) - Service demo client

    svcsvr (2.4.0) - Service demo server

    svdrpdemo (2.4.0) - How to add SVDRP support to a plugin


    Wenn ich dann noch autotimer-2.3.0 dazu installiere kommt folgendes:

    vdr --version

    vdr: /usr/local/lib/vdr/libvdr-autotimer.so.2.6.0: undefined symbol: _ZN6cTimerC1EPK6cEvent

    vdr (2.6.0/2.6.0) - The Video Disk Recorder


    Die restlichen Plugins werden gar nicht mehr gelistet. Könnte mit der alphabetischen Reihenfolge zu tun haben, vnsiserver wäre ja das letzte in der Reihenfolge.



    Wenn ich vdr starte, erscheint gleich:

    vdr: /usr/local/lib/vdr/libvdr-vnsiserver.so.2.6.0: undefined symbol: _ZN6cTimerC1EPK6cEvent


    ------------------------------------------------------

    Zum Vergleich die funktionierende Version 2.4:

    vdr --version

    vdr (2.4.7/2.4.7) - The Video Disk Recorder

    dummydevice (2.0.0) - Output device that does nothing

    epgtableid0 (2.4.0) - EPG handler for events with table id 0x00

    hello (2.4.0) - A friendly greeting

    osddemo (2.4.1) - Demo of arbitrary OSD setup

    pictures (2.4.0) - A simple picture viewer

    skincurses (2.4.2) - A text only skin

    status (2.4.0) - Status monitor test

    svccli (2.4.0) - Service demo client

    svcsvr (2.4.0) - Service demo server

    svdrpdemo (2.4.0) - How to add SVDRP support to a plugin

    vnsiserver (1.8.0) - VDR-Network-Streaming-Interface (VNSI) Server

    vnsiserver2 (1.8.0) - VDR-Network-Streaming-Interface (VNSI) Server


    Gibt es neuer auktualisierte Versionen der Plugins für den 2.6er vdr?

  • Gibt es neuer auktualisierte Versionen der Plugins für den 2.6er vdr?

    Teilweise, ist aber hier nicht das Problem.


    Der VDR holt bei dir die Plugins von /usr/local/lib/vdr/

    ist Filedatum = Compile Datum ?

    im diesem Verzeichnis ?

    Poste mal die Ausgabe von "make install-plugins"

  • ja, habe den Ordner zuvor geleert:


    ll /usr/local/lib/vdr/libvdr-*

    -rwxr-xr-x 1 root staff 127620 Jan 24 19:39 /usr/local/lib/vdr/libvdr-autotimer.so.2.6.0*

    -rwxr-xr-x 1 root staff 37740 Jan 24 19:39 /usr/local/lib/vdr/libvdr-epgtableid0.so.2.6.0*

    -rwxr-xr-x 1 root staff 37640 Jan 24 19:39 /usr/local/lib/vdr/libvdr-hello.so.2.6.0*

    -rwxr-xr-x 1 root staff 96380 Jan 24 19:39 /usr/local/lib/vdr/libvdr-osddemo.so.2.6.0*

    -rwxr-xr-x 1 root staff 124356 Jan 24 19:39 /usr/local/lib/vdr/libvdr-pictures.so.2.6.0*

    -rwxr-xr-x 1 root staff 47144 Jan 24 19:39 /usr/local/lib/vdr/libvdr-status.so.2.6.0*

    -rwxr-xr-x 1 root staff 31652 Jan 24 19:39 /usr/local/lib/vdr/libvdr-svccli.so.2.6.0*

    -rwxr-xr-x 1 root staff 30628 Jan 24 19:39 /usr/local/lib/vdr/libvdr-svcsvr.so.2.6.0*

    -rwxr-xr-x 1 root staff 29412 Jan 24 19:39 /usr/local/lib/vdr/libvdr-svdrpdemo.so.2.6.0*

    -rwxr-xr-x 1 root staff 3702056 Jan 24 19:39 /usr/local/lib/vdr/libvdr-vnsiserver.so.2.6.0*

  • make install-plugins


    *** Plugin autotimer:

    xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-autotimer --package-version=2.3.0 --msgid-bugs-address='<see README>' -o po/autotimer.pot `ls autotimer.c rules.c`


    *** Plugin epgtableid0:

    make[1]: Nothing to be done for 'all'.


    *** Plugin hello:

    make[1]: Nothing to be done for 'all'.


    *** Plugin osddemo:

    make[1]: Nothing to be done for 'all'.


    *** Plugin pictures:

    make[1]: Nothing to be done for 'all'.


    *** Plugin servicedemo:

    make[1]: Nothing to be done for 'all'.


    *** Plugin status:

    make[1]: Nothing to be done for 'all'.


    *** Plugin svdrpdemo:

    make[1]: Nothing to be done for 'all'.


    *** Plugin vnsiserver:

    make[1]: Nothing to be done for 'all'.

    install -D libvdr-autotimer.so /usr/local/lib/vdr/libvdr-autotimer.so.2.6.0

    install -D libvdr-epgtableid0.so /usr/local/lib/vdr/libvdr-epgtableid0.so.2.6.0

    install -D libvdr-hello.so /usr/local/lib/vdr/libvdr-hello.so.2.6.0

    install -D libvdr-osddemo.so /usr/local/lib/vdr/libvdr-osddemo.so.2.6.0

    install -D libvdr-pictures.so /usr/local/lib/vdr/libvdr-pictures.so.2.6.0

    install -D libvdr-svccli.so /usr/local/lib/vdr/libvdr-svccli.so.2.6.0

    install -D libvdr-svcsvr.so /usr/local/lib/vdr/libvdr-svcsvr.so.2.6.0

    install -D libvdr-status.so /usr/local/lib/vdr/libvdr-status.so.2.6.0

    install -D libvdr-svdrpdemo.so /usr/local/lib/vdr/libvdr-svdrpdemo.so.2.6.0

    install -D libvdr-vnsiserver.so /usr/local/lib/vdr/libvdr-vnsiserver.so.2.6.0

  • selbes Resultat.


    ach ja, hatte ich vergessen, bei skincurses habe ich auch schon ein Problem und hatte das versuchsweise aus PLUGINS/src entfernt:


    *** Plugin skincurses:

    CC skincurses.o

    skincurses.c: In member function ‘virtual void cSkinCursesDisplayMenu::SetRecording(const cRecording*)’:

    skincurses.c:457:13: error: ‘const class cRecordingInfo’ has no member named ‘Errors’

    if (Info->Errors() > 0) {

    ^~~~~~

    skincurses.c:458:57: error: ‘const class cRecordingInfo’ has no member named ‘Errors’

    cString buffer = cString::sprintf(" %d %s ", Info->Errors(), tr("errors"));

    ^~~~~~

    Makefile:66: recipe for target 'skincurses.o' failed

    make[1]: *** [skincurses.o] Error 1


    *** Plugin status:

    make[1]: Nothing to be done for 'all'.


    *** Plugin svdrpdemo:

    make[1]: Nothing to be done for 'all'.


    *** Plugin vnsiserver:

    make[1]: Nothing to be done for 'all'.


    *** failed plugins: skincurses


    Makefile:236: recipe for target 'plugins' failed

    make: *** [plugins] Error 1

  • Deine VDR Sourcen in deinem Compile Baum sind kein 2.6.0, sondern 2.4.x.

    class cRecordingInfo’ has no member named ‘Errors’, das hat die aber in 2.6.0, in 2.4.x gab es die noch nicht.

    Was steht in der config.h in deinem Baum für eine Version ?

    Wo hast du die Sourcen her ?

    Zur Not, Baum komplett löschen und Sourcen neu laden.

  • die sourcen hab ich per git herunter gezogen.

    git clone --branch stable/2.6 git://git.tvdr.de/vdr.git




    in config.h :


    // VDR's own version number:


    #define VDRVERSION "2.6.0"

    #define VDRVERSNUM 20600 // Version * 10000 + Major * 100 + Minor

  • Da hängt noch was Altes rum. Versuche "make clean && make all && make install" im VDR Source Verzeichnis.

  • Ich hatte das Source Verzeichnis gelöscht und neu herunter gezogen.

    ich versuche trotzdem mal das make clean,

    womöglich (wenn auch unwahrscheinlich) liegt irgend ein Mist auf dem Git Repository?

  • Nein, liegt nicht.

    Geht denn das bei dir ?

    Code
    cd /tmp
    git clone --branch stable/2.6 git://git.tvdr.de/vdr.git
    cd vdr
    make all
  • git clone --branch stable/2.6 git://git.tvdr.de/vdr.git

    cd vdr/

    cp Make.config.template Make.config

    make clean && make all && make install


    ... selbes Problem...


    *** Plugin skincurses:

    CC skincurses.o

    skincurses.c: In member function ‘virtual void cSkinCursesDisplayMenu::SetRecording(const cRecording*)’:

    skincurses.c:457:13: error: ‘const class cRecordingInfo’ has no member named ‘Errors’

    if (Info->Errors() > 0) {

    ^~~~~~

    skincurses.c:458:57: error: ‘const class cRecordingInfo’ has no member named ‘Errors’

    cString buffer = cString::sprintf(" %d %s ", Info->Errors(), tr("errors"));

    ^~~~~~

    Makefile:66: recipe for target 'skincurses.o' failed

    make[1]: *** [skincurses.o] Error 1


    *** Plugin status:

    CC status.o

    LD libvdr-status.so


    *** Plugin svdrpdemo:

    CC svdrpdemo.o

    LD libvdr-svdrpdemo.so


    *** failed plugins: skincurses


    Makefile:236: recipe for target 'plugins' failed

    make: *** [plugins] Error 1

  • Hast du parallel vdr aus den Paketquelken installiert?

  • oder sudo pkg-config vdr --modversion

  • Baue mal mit "make LCLBLD=1". Ich vermute, du hast irgendwo ein vdr.pc, welches du anziehst und die includes auf einen 2.4er Baum bringt. Am besten alle anderen VDR Sourcen löschen.

Jetzt mitmachen!

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