Portál AbcLinuxu, 14. května 2025 04:38
... ../src/.libs/libmediastreamer.so: undefined reference to `avcodec_decode_video2' collect2: ld returned 1 exit status make[4]: *** [mediastream] Error 1 ...Funkce je součástí knihovny libavcodec tedy balíku ffmpeg. (opravte mě pokud se mýlím). Problém je v tom, že ačkoliv tato funkce je definována v hlavičkových souborech (konkrétně <libavcodec/avcodec.h>) v knihovnách přítomná není. Ukazuje to jasně tento výstup:
$ for file in /usr/local/lib/lib*.so* ; do if [ $[`objdump -T ${file} |grep avcodec_decode_video | wc -l`] -ge 1 ] ; then echo ${file} ; fi && objdump -T ${file} | grep avcodec_decode_video ; done /usr/local/lib/libavcodec.so 00049550 g DF .text 000000c4 Base avcodec_decode_video /usr/local/lib/libavcodec.so.51 00049550 g DF .text 000000c4 Base avcodec_decode_video /usr/local/lib/libavcodec.so.51.40.4 00049550 g DF .text 000000c4 Base avcodec_decode_video /usr/local/lib/libavcodec-0.4.9-pre1.so 0002d370 g DF .text 00000049 Base avcodec_decode_video /usr/local/lib/libavformat.so 00000000 DF *UND* 000000c4 avcodec_decode_video /usr/local/lib/libavformat.so.51 00000000 DF *UND* 000000c4 avcodec_decode_video /usr/local/lib/libavformat.so.51.12.1 00000000 DF *UND* 000000c4 avcodec_decode_video /usr/local/lib/libavformat-0.4.9-pre1.so 00000000 D *UND* 00000000 avcodec_decode_video /usr/local/lib/libquartz.so 001362b0 g DF .text 00000051 Base avcodec_decode_video /usr/local/lib/libquicktimehv.so 000ba6e0 g DF .text 000000ad Base avcodec_decode_video /usr/local/lib/libquicktimehv-1.6.0.so.1 000ba6e0 g DF .text 000000ad Base avcodec_decode_video /usr/local/lib/libquicktimehv-1.6.0.so.1.0.0 000ba6e0 g DF .text 000000ad Base avcodec_decode_videoStejný výsledek (žádná knihovna neobsahuje avcodec_decode_video2) dostanu když příkaz pustím nad adresářem /usr/lib.
$ for file in /home/matlak/software/ffmpeg/ffmpeg/* ; do if [ $[`objdump -T ${file} |grep avcodec_decode_video | wc -l`] -ge 1 ] ; then echo ${file} ; fi && objdump -T ${file} | grep avcodec_decode_video ; done /home/matlak/software/ffmpeg/ffmpeg/ffserver 082a50a0 g DF .text 000000bf Base avcodec_decode_video2 082a5160 g DF .text 000000f0 Base avcodec_decode_video /home/matlak/software/ffmpeg/ffmpeg/ffserver_g 082a50a0 g DF .text 000000bf Base avcodec_decode_video2 082a5160 g DF .text 000000f0 Base avcodec_decode_videoMůžete mi někdo z guru vysvětlit co to znamená? Je ta funkce natvrdo zadrátovaná do binárky ffserver? Pokud to tak je, jak ji dostanu do dynamické knihovny, abych ji mohl přilinkovat k programu Linphone? Děkuji předem za reakce..
libavcodec.so.52.66.0 003404d5 g DF .text 000000a5 LIBAVCODEC_52 avcodec_decode_video2 00341509 g DF .text 000000c5 LIBAVCODEC_52 avcodec_decode_video
--enable-dynamic
konfiguračnímu skriptu balíku se zdrojáky ffmpeg
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.