Ich versuche, das ffmpeg-Quellpaket so zu konfigurieren, dass .so-Dateien anstelle von .a-Dateien erstellt werden.
Ich renne make
hinterher./configure --enable-shared
Dies gibt mir die folgende Nachricht:
/usr/bin/ld: libavutil/display.o: relocation R_X86_64_PC32 against undefined symbol 'hypot@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
Ich bin mir jedoch nicht sicher, wo und wie ich das Flag -fPIC hinzufügen soll.
Antworten:
Es gibt eine ./configure-Option, mit der das Problem möglicherweise am einfachsten gelöst werden kann:
quelle
Ich habe den gleichen Fehler beim Kompilieren von FFMpeg 2.3.3-Quellen unter Ubuntu 14.04 LTS behoben. Ich habe successfuly den Code kompiliert , nachdem gesetzt
LD_LIBRARY_PATH
zu/usr/lib/x86_64-linux-gnu
und fügte hinzu-fPIC
Flagge--cc
. Meine funktionierenden Kompilierungsbefehle sind hier:quelle
Die Verschiebung von R_X86_64_PC32 gegen ein undefiniertes Symbol erfolgt normalerweise, wenn LDFLAGS auf Härten eingestellt sind und CFLAGS nicht.
Möglicherweise nur ein Benutzerfehler:
Wenn Sie zur Verbindungszeit -specs = / usr / lib / rpm / redhat / redhat-hardened-ld verwenden, müssen Sie auch -specs = / usr / lib / rpm / redhat / redhat-hardened verwenden -cc1 zur Kompilierungszeit, und da Sie gleichzeitig kompilieren und verknüpfen, benötigen Sie entweder beide oder löschen die -specs = / usr / lib / rpm / redhat / redhat-hardened-ld. Allgemeine Korrekturen:
https://bugzilla.redhat.com/show_bug.cgi?id=1304277#c3
https://github.com/rpmfusion/lxdream/blob/master/lxdream-0.9.1-implicit.patch
quelle