Как перекомпилировать с-fPIC
Я пытался переустановить свой ffmpeg, следуя этому руководство, на моей машине Ubuntu ARM. К сожалению, когда я компилирую программу, которая использует этот lib, я получаю следующий сбой:
/usr/bin/ld: /usr/local/lib/libavcodec.a(amrnbdec.o): relocation R_ARM_MOVW_ABS_NC against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libavcodec.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
теперь я хотел бы перекомпилировать его с -fPIC
как компилятор предлагает, но я понятия не имею, как. Любая помощь приветствуется.
4 ответов
Короче, эта ошибка означает, что вы не может использовать статическую библиотеку для связи с динамической. Правильный способ-скомпилировать libavcodec .так что вместо этого .а, так другой .поэтому библиотеки вы пытаетесь построить бедет хорошо.
самый короткий способ сделать это-добавить --enable-shared
at ./configure
параметры.
или даже вы можете попытаться отключить общие (или статические) библиотеки вообще... вы выбираете то, что подходит именно вам!
посмотреть этой странице.
вы можете попробовать глобально добавить флаг, используя:export CXXFLAGS="$CXXFLAGS -fPIC"
после шага настройки у вас, вероятно, есть makefile. Внутри этого makefile найдите CFLAGS (или аналогичный). puf-fPIC в конце и запустить снова. Другими словами-fPIC-это параметр компилятора, который должен быть передан компилятору где-то.
перед компиляцией убедитесь, что " правила.Mk " файл включен правильно в Makefile или включить его явно:
"исходные правила.МК"