Portál AbcLinuxu, 10. listopadu 2025 03:08
... ../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_video
Stejný 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_video
Můž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
omlouvám se za zbytečný dotaz..
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.