[Ffmpeg-devel] FFMpeg as shared library
Michel Bardiaux
mbardiaux
Mon Jun 20 18:48:43 CEST 2005
Francesco Comi wrote:
> I wrote a small program that makes use of ffmpeg libavcodec and libavformat.
>
> I compiled ffmpeg with
>
> ./configure --enable-shared
> make lib
> make installlib
>
> but when I compile my program I get an executable around 8-9 MB in
> size. If I compile ffmpeg with --disable-shared I get the same size
> for my program.
>
> I compile my prog with this flags: -lavcodec -lavformat
>
> How can I solve this? do I have to compile ffmpeg with some other flag?
>
> Thanks.
> Francesco
>
installlib installs the static libraries but not the shared libraries.
Hence your later links are against the installed static libs.
Looking inside libavcodec/Makefile shows that you should use 'make
install' (also remove the installed .a by hand!)
BTW, IMHO the behavior of configure and the installation rules is rather
obfuscated. Using --enable-static or --disable-static does not produce
any message, but has aboslutely no effect: the static libraries are
*always* generated; 'make installlib' installs them, regardless of the
enabling of shared; 'make install' installs the shared iff shared is
enabled. Wouldnt it be better if 'shared' and 'static' were handled in a
more symmetrical way?
--
Michel Bardiaux
Peaktime Belgium S.A. Bd. du Souverain, 191 B-1160 Bruxelles
Tel : +32 2 790.29.41
More information about the ffmpeg-devel
mailing list