2015-09-25 10 views
5

Ich lief die ./configure Skript von FFmpeg wie folgt:FFmpeg nicht kompiliert mit gemeinsam genutzten Bibliotheken

PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --pkg-config-flags="--static" --extra-cflags="-fPIC -m64 -I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" --bindir="$HOME/bin" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree --enable-pic --extra-ldexeflags=-pie --enable-shared

Wenn ich versuche, wie oben FFmpeg mit --enable-shared Option zu kompilieren, bekomme ich diesen Fehler:

/usr/bin/ld: /home/guel/ffmpeg_build/lib/libx264.a(common.o): relocation R_X86_64_32 against '.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC /home/guel/ffmpeg_build/lib/libx264.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status

ich hatte --enable-pic, --extra-ldexeflags=-pie sowie -fPIC -m64 zu --extra-cflags hinzugefügt, um loszuwerden Dieser Verschiebungsfehler wie hier vorgeschlagen: https://www.ffmpeg.org/platform.html

Aber ich bekomme immer noch den gleichen Fehler. Ich muss ffmpeg mit --enable-shared Option zu Schnittstelle mit OpenCV kompilieren, also muss ich hier eine Abhilfe finden.

+0

Ich hatte dieses Problem und zog einfach das neueste aus Github reparierte es für mich. – brian

Antwort

6

Ich schaffte es, das Problem zu lösen. Eigentlich hätten die Zusätze -fPIC und --enable-pic den Trick gemacht, aber ich hatte die Abhängigkeitsbibliotheken (libx264 und viele andere) zuvor mit der Option --disable-shared kompiliert, weil mir das beim ersten kompilieren von FFmpeg egal war und blind der Kompilierung folgte Anleitung hier: https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

Nachdem alle Bibliotheken mit --enable-shared Option neu kompiliert wurde, kompiliert FFmpeg auch mit dieser Option erfolgreich.

+1

Danke, das hat mir sehr geholfen. Ich stieß aus denselben Gründen auf dasselbe Problem. – Shiro

Verwandte Themen