Jak przekompilować za pomocą-fPIC
Próbowałem ponownie zainstalować mój ffmpeg, zgodnie z tym Przewodnik , na moim komputerze ARM Ubuntu. Niestety, kiedy kompiluję program, który używa tej lib, dostaję następującej porażki:
/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
Teraz chciałbym go przekompilować -fPIC
tak jak sugeruje kompilator, ale nie mam pojęcia jak. Każda pomoc jest mile widziana.
4 answers
W skrócie, błąd oznacza, że nie można użyć biblioteki statycznej do połączenia z dynamiczną . Poprawnym sposobem jest skompilowanie libavcodec do .so zamiast .a, więc druga .więc biblioteka, którą próbujesz zbudować, będzie dobrze się łączyć.
Najkrótszym sposobem na to jest dodanie --enable-shared
w ./configure
opcji.
możesz też spróbować w ogóle wyłączyć biblioteki współdzielone (lub statyczne)... Ty wybierasz to, co jest dla Ciebie odpowiednie!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-06 13:25:46
Spójrz na tę stronę.
Możesz spróbować globalnie dodać flagę używając: export CXXFLAGS="$CXXFLAGS -fPIC"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-27 07:57:01
Po kroku konfiguracja prawdopodobnie masz plik makefile. W tym pliku makefile poszukaj CFLAGS (lub podobnych). puf-fPIC na końcu i uruchomić ponownie. Innymi słowy-fPIC jest opcją kompilatora, która musi być gdzieś przekazana kompilatorowi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-11 01:36:31
Przed kompilacją upewnij się, że "rules.mk" plik jest poprawnie dołączany do Makefile lub dołączany jawnie przez:
"źródło rules.mk"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-26 05:13:55