Сборка статических библиотек ffmpeg на amd64, где libc не компилируется с -fPIC

Во-первых, я не разработчик C / C ++, поэтому будьте конкретны в своих решениях и постарайтесь понять. Во-вторых, здесь есть похожий вопрос , который не решает проблему. Вот моя строка конфигурации после клонирования из репозитория ffmpeg:

./configure --disable-debug --disable-doc \
            --disable-avdevice --disable-programs \
            --disable-decoders --disable-encoders \
            --disable-filters --disable-muxers \
            --disable-demuxers --disable-indevs \
            --disable-outdevs --disable-swscale-alpha \
            --disable-symver --disable-protocols \
            --disable-bsfs --disable-parsers \
            --disable-symver --disable-iconv \
            --disable-shared --enable-static \
            --enable-swresample --enable-swscale \
            --enable-pthreads --enable-pic \
            --enable-runtime-cpudetect --enable-asm \
            --enable-yasm --enable-decoder=aac \
            --enable-decoder=h264 --enable-decoder=libspeex \
            --enable-parser=h264,aac --prefix="$(pwd)/linux" \
            --extra-cflags="-fPIC -mcmodel=large" \
            --extra-cxxflags="-fPIC -mcmodel=large" \
            --pkg-config-flags="--static"

После этого я запускаю следующее:

make clean
make
make install

Затем я копирую файлы * .a из каталога linux (мой выходной каталог, по префиксу) в папку lib моего проекта. Затем я запускаю сборку и в результате получаю сообщение об ошибке:

/usr/bin/ld: lib/libavcodec.a(hevc_cabac.o): relocation R_X86_64_PC32 against symbol `ff_h264_cabac_tables' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status

Я работаю в Ubuntu 16.04 и не могу использовать GPL или несвободный код для этого.

1
задан 14 April 2017 в 01:25

0 ответов

Другие вопросы по тегам:

Похожие вопросы: