[FFmpeg-user] Weird issue when to link libraries of ffmpeg.

stanley zhang zsq20030710 at gmail.com
Sat May 25 02:30:53 CEST 2013

Hi, All,

I want to  build myself application based on ffmpeg libraries. What I did
are very simple:
(1) Configure, build and install latest ffmpeg;
(2) Copy ffplay.c (changed to play.c), cmdutils.c, config.h,
cmdutils_common_opts.h,  and cmdutils.h from the parent directory of ffmpeg
to my self directory.
(3) Create a simple Makefile as the followings:
all: play
play:play.c cmdutils.c
    gcc -o play play.c cmdutils.c -lSDL -lavcodec -lavformat -lavutil
-lswscale -lavfilter -lpostproc -lswresample

(4) Build it. The errors can be met as the followings:
   ~/fftest/play$ make
gcc -o play play.c cmdutils.c -lSDL -lavcodec -lavformat -lavutil -lswscale
-lavfilter -lpostproc -lswresample
/usr/local/lib/libavfilter.a(buffersink.o): In function `read_from_fifo':
/home/stanley/ffmpeg/libavfilter/buffersink.c:166: undefined reference to
...(Some other logs are omitted)

But I am sure the right libraries are linked and the function
"read_from_fifo" are defined in the library libavutil.a:
stanley at stanley-P31-ES3G:~/fftest/play$ objdump /usr/local/lib/libavutil.a
-t |grep av_audio_fifo_size
00000480 g     F .text    00000008 av_audio_fifo_size
stanley at stanley-P31-ES3G:~/fftest/play$ objdump
/usr/local/lib/libavfilter.a -t|grep av_buffersink_get_samples
00000790 g     F .text    000001d3 av_buffersink_get_samples

It seems not to be version issue.

Is there anyone meeting the similar issue? Who can give some hints?

Thanks a lot!

More information about the ffmpeg-user mailing list