Что делать с & ldquo; перекомпилировать с -fPIC & rdquo; сообщение

Я пытаюсь настроить исходный пакет ffmpeg для создания файлов .so, а не файлов .a.

Я запускаю make после выполнения ./configure --enable-shared

Это дает мне следующее сообщение:

/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

Однако я не уверен, где и как добавить флаг -fPIC.

7
задан 15 July 2014 в 17:49

3 ответа

Я решил ту же ошибку для компиляции FFMpeg 2.3.3 источника в Ubuntu 14.04 LTS. Я успешно скомпилировал код, после того, как установлено LD_LIBRARY_PATH к /usr/lib/x86_64-linux-gnu и добавил -fPIC флаг к --cc . Мои рабочие команды компиляции здесь:

LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
./configure --prefix=.. --enable-shared --enable-gpl --enable-version3 --enable-runtime-cpudetect --disable-outdev=sdl --disable-opencl --enable-libmp3lame --enable-libx264 --cc="gcc -m64 -fPIC" --extra-cflags="-I../include" --extra-ldflags="-L../lib -ldl"
make -j4
1
ответ дан 15 July 2014 в 17:49

Существует./настраивала опций, которые могли бы быть самым легким способом решить проблему:

andrew@ilium~/source/ffmpeg_build/ffmpeg/ffmpeg$ ./configure --help | grep -i pic
--enable-pic             build position-independent code
2
ответ дан 15 July 2014 в 17:49

R_X86_64_PC32 перемещения против неопределенного символа, обычно происходит, когда LDFLAGS установлены с укреплением и CFLAGS нет.
, Возможно, просто пользовательская ошибка:
, Если Вы используете - спецификации =/usr/lib/rpm/redhat/redhat-hardened-ld во время ссылки, также необходимо использовать - спецификации =/usr/lib/rpm/redhat/redhat-hardened-cc1 во время компиляции, и поскольку Вы компилируете и связываетесь одновременно, Вы нуждаетесь или в обоих или отбрасываете - спецификации =/usr/lib/rpm/redhat/redhat-hardened-ld. Общие меры:
https://bugzilla.redhat.com/show_bug.cgi? id=1304277#c3
https://github.com/rpmfusion/lxdream/blob/master/lxdream-0.9.1-implicit.patch

0
ответ дан 15 July 2014 в 17:49

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

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