Versionen von shared libraries

  • Hallo,


    ich habe gerade ffmpeg aus dem Git kompiliert.
    Also ganz klassisch ein

    Code
    ./configure  --enable-gpl --enable-libxvid --enable-postproc --enable-avfilter --enable-shared --enable-libx264 --enable-nonfree --enable-libfaac --enable-libmp3lame --enable-version3 --enable-postproc --enable-pthreads --enable-x11grab
    make
    make install


    Jetzt fehlen ihm aber Bibliotheken:



    Ähnliche existieren aber:

    Code
    find /usr/lib/ | grep -E "libavdevice.so.*|libavfilter.so.*|libavcodec.so.*|libavcore.so.*"
    /usr/lib/x86_64-linux-gnu/libavcodec.so.53.61.100
    /usr/lib/x86_64-linux-gnu/libavdevice.so.53
    /usr/lib/x86_64-linux-gnu/libavfilter.so.2
    /usr/lib/x86_64-linux-gnu/libavdevice.so.53.4.100
    /usr/lib/x86_64-linux-gnu/libavfilter.so.2.61.100
    /usr/lib/x86_64-linux-gnu/libavcodec.so.53
    /usr/lib/x86_64-linux-gnu/libavcodec.so


    Woher/warum sucht er z.B. nach einer libavcodec.so.52? Wie kommt er darauf? Ich habe ffmpeg doch auf DIESEM System kompiliert. Hätte ./configure da nicht libavcodec.so.53.61.100 oder noch einfacher libavcodec.so (welches ein link auf ersteres ist) finden/wählen sollen?


    Wie ist hier das korrekte Vorgehen?


    Gruß,
    Hendrik

  • So wie du gebaut hast landen die neuen (oder in diesem Fall eher "älteren"?) Libraries unter /usr/local/lib.


    Meine Vermutung ist, dass dieser Pfad nicht in deiner /etc/ld.so.conf eingetragen ist. Prüfe das mal, bzw. suche mal direkt im Kontext von /usr nach den fehlenden Libraries und stelle sicher, dass der Pfad auch eingetragen ist. Danach "ldconfig" aufrufen um die Libraries neu einzulesen.

  • Hallo,


    danke für deine Antwort.
    Da stand ich auf dem Schlauch: ffmpeg selbst bringt libav* mit... Soso. Das erklärt schon mal einiges. Den Rest hast du ja erklärt.


    Bekomme ich so nicht ein Versionskonflikt der *.so?


    Ich frage mich auch, wo die *.52 her kommt, denn die installierte ffmpeg Version (aus einem Packet) ist uralt.


    Gruß,
    Hendrik

  • /usr/local/lib sollte vor /usr/lib stehen. So wird es dann möglich durch selbstkompiliertes und via "make install" installiertes die im System installierten Libraries zu übersteuern und "am Paketmanagement vorbei" zu aktualisieren. Konflikte gibt es dadurch normalerweise nicht.

Jetzt mitmachen!

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