ffmpeg-Installation auf CentOS 64-bit "installieren mit -fPIC" - Fehler
Bekomme ich diesen Fehler beim kompilieren von ffmpeg auf einem 64bit CentOS Maschine.
Hier sind meine ./konfigurieren der Optionen:
./configure --enable-shared --enable-gpl --enable-nonfree --enable-postproc --enable-swscale --enable-pthreads --enable-libx264 --enable-libxvid --enable-libvorbis --enable-libfaac --enable-libmp3lame --enable-libvpx
make
Bekomme ich die folgende Fehlermeldung beim kompilieren der Quelle:
/usr/bin/ld: /usr/local/lib/libvpx.a(vpx_codec.c.o): relocation R_X86_64_32 against .rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libvpx.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make: *** [libavcodec/libavcodec.so.54] Error 1
Wie bekomme ich diesen Fehler und Holen Sie sich libvpx und läuft mit dem neuesten ffmpeg auf meinem 64-bit-CentOS-box?
- stackoverflow.com/questions/27226157/...
- Manchmal ist das, was passiert ist, wenn Sie ausgeführt werden -fPIC, Sie wirft diesen Fehler wieder für einige sub-object-Datei. Nehmen Sie einfach backup der Objekt-Datei und führen Sie make erneut. Beispiel. Sie läuft TotalSum.cpp und es hat Verweis auf eine andere Datei CalculateSum.o. Jetzt kommt der Fehler auf CalculateSum.o. Also, nehmen backup von CalculateSum.o wie gut und laufen -fPIC. die Fehler gehen Weg.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie konfiguriert FFMPEG mit "--enable-shared", müssen Sie auch konfigurieren einige andere Bibliotheken mit "--enable-shared" auch, und Sie müssen alle die gleiche Einstellung.
Diese Fehlermeldung ist grundsätzlich zu sagen, Sie kompilieren libvpx wieder mit "--enable-shared" Hinzugefügt, um die configure-Befehl, dann versuchen Sie kompilieren von FFMPEG wieder (auch konfiguriert mit "--enable-shared"). Chancen sind, dass Sie dann die gleichen Fehler, aber es wird sagen, "libx264" oder "libmp3lame" statt "libvpx", so dass Sie auch neu kompilieren müssen diese libs mit "--enable-shared" in den configure-Befehl.
Ich habe einen ähnlichen Fehler beim kompilieren ffmpeg auf eine x86_64 Maschine mit Oracle Linux 6.3. Oracle Linux basiert auf Red Hat und ist somit ähnlich wie CentOS in der ursprünglichen Frage.
konfigurieren:
machen:
In meinem Fall Antwort, obwohl teilweise spezifisch für Ubuntu, mehr Licht auf das zugrunde liegende Problem mit Bezug auf x86_64-Systemen im Allgemeinen:
Dem Update war es sicherzustellen, dass der x264-Quellen, die ich ursprünglich kompiliert mit "--enable-static" - flag mit konfigurieren (generiert "/usr/local/lib/libx264.a") neu kompiliert wurde mit dem "--enable-shared" - flag, das erzeugt das richtige Ziel "/usr/local/lib/libx264.so":
Versuchen
Hinzufügen der fahne, dass der Fehler erwähnt wird, fehlt.
(Und die Frage ist...?)
Shared libraries muss aus der PIC-Objekt-code, aber ffmpeg nicht zu tun.
Haben Sie kompilieren Ihre libvpx mit
--shared
und-fPIC
so erzeugt eslibvpx.so*
?Wenn nicht, können Sie versuchen Kommentar #6 und #7 in diese Problem.
Ich hatte dieses problem in MythTV bauen mit libx264.ein
Habe ich heruntergeladen und gebaut als Saheed vorgeschlagen.
Die einzige Sache ist, dass /usr/local/lib/libx264.a wurde nicht geändert, wenn ich "make install". Ich hatte zu tun "make install-lib-static"