[gst-devel] Gst-ffmpeg Cygwin compile error

Andoni Morales ylatuya at gmail.com
Fri Aug 21 22:33:23 CEST 2009


2009/8/21 Marko Mikkonen <mmikkone at mail.student.oulu.fi>:
> Thank you. Your tip caused me to try to compile ffmpeg-0.5 for cygwin.
> Again, no import libraries are created. Only .dll's. So maybe this is an
> ffmpeg problem... Hmmm... I should complain to ffmpeg people instead...

If it helps, these are the options we use in OSSBuild to build ffmpeg
using minGW:
./configure --enable-avfilter-lavf --enable-avfilter --disable-vhook
--enable-avisynth --target-os=mingw32 --arch=i686 --cpu=i686
--enable-memalign-hack --extra-cflags=-fno-common --enable-zlib
--enable-bzlib --enable-w32threads --enable-libmp3lame
--enable-libvorbis --enable-libopenjpeg --enable-libtheora
--enable-libspeex --enable-libschroedinger --disable-ffmpeg
--disable-ffplay --disable-ffserver --enable-static --disable-shared

We  use static linking because using dynamic linking on win32 with the
ffmpeg-0.5 release leads to a strange bug loading the library. Anyway
you can use --enable-shared and try it by yourself.

To get import libraries from the dll you can use the following commands:

#pexports /usr/bin/avformat-52.dll | sed "s/^_//" > avformat.def
#dlltool -U -d avformat.def -l libavformat.dll.a

Andoni

>
> -M-
>
>
> ----- Original Message -----
> From: "LRN" <lrn1986 at gmail.com>
> To: "Discussion of the development of GStreamer"
> <gstreamer-devel at lists.sourceforge.net>
> Sent: Wednesday, August 19, 2009 8:22 PM
> Subject: Re: [gst-devel] Gst-ffmpeg Cygwin compile error
>
>
>> Marko Mikkonen wrote:
>>> Hello,
>>>
>>> I've been trying to compile ffmpeg gstreamer plugin with cygwin and it
>>> won't
>>> compile.
>>>
>>> First some preliminaries: I use Cygwin 1.7 beta, because rtp/rtsp-plugins
>>> in
>>> base plugins need IPv6 stuff and only Cygwin 1.7 beta has them.
>>> Additionally, I've downloaded, compiled and installed glib-2.20.1 and
>>> liboil-0.3.16. Other external libraries can be found in Cygwin. Oh, and I
>>> had to fix glib-2.20.1 a bit: I set the return type of strsignal as char*
>>> (instead of const char*) in gstrfuncs.c (line 1414). The compilation of
>>> gstreamer-0.10.24, gst-plugins-base-0.10.24 and gst-plugins-good-0.10.15
>>> (with ./configure --prefix=/usr --exec-prefix=/usr & make install) all
>>> went
>>> well. But there's a problem with gst-ffmpeg-0.10.8.
>>>
>>> After configure, when I try to make, it goes well until I hit this spot:
>>>
>>> --------------------------------
>>> Making all in ffmpeg
>>>   CC    gstffmpeg.o
>>>   CC    gstffmpegprotocol.o
>>>   CC    gstffmpegcodecmap.o
>>>   CC    gstffmpegutils.o
>>>   CC    gstffmpegenc.o
>>>   CC    gstffmpegdec.o
>>>   CC    gstffmpegcfg.o
>>>   CC    gstffmpegdemux.o
>>>   CC    gstffmpegmux.o
>>>   CC    gstffmpegdeinterlace.o
>>>   CC    gstffmpegaudioresample.o
>>>   LINK  libgstffmpeg.la
>>>
>>> *** Warning: Trying to link with static lib archive
>>> ../../gst-libs/ext/ffmpeg/li
>>> bavformat/libavformat.a.
>>> *** I have the capability to make that library automatically link in when
>>> *** you link to this library.  But I can only do this if you have a
>>> *** shared version of the library, which you do not appear to have
>>> *** because the file extensions .a of this argument makes me believe
>>> *** that it is just a static archive that I should not use here.
>>> -----------------------------
>>>
>>> There are similar complaints about libavcodec and libavutil. Then there's
>>> lots of  "undefined references" to this and that, apparently things from
>>> those libraries. Import libraries are not created (no files with
>>> extension
>>> .dll.a can be found, except libgstffmpeg.dll.a). Static libraries are
>>> created (libavcodec.a, libavformat.a and libavutil.a). However, dll's are
>>> also created (cygavcodec-52.dll, cygavformat-52.dll and
>>> cygavutil-49.dll).
>>> Is there a switch of some sort that creates import libraries or is this a
>>> bug in the gst-ffmpeg build engine or Cygwin 1.7 beta? I've tried a bunch
>>> of
>>> different switches.
>>>
>>> -M-
>>>
>> I don't know much about cygwin, so i don't really know if it is related
>> or not...but i do know that gst-ffmpeg uses libtool in
>> non-cross-platform way to link libav* to libgstffmpeg. As a result i
>> have failed to build gst-ffmpeg on Windows with internal ffmpeg copy and
>> had to resort to using external ffmpeg (of appropriate version, of
>> course).
>>
>> ------------------------------------------------------------------------------
>> Let Crystal Reports handle the reporting - Free Crystal Reports 2008
>> 30-Day
>> trial. Simplify your report design, integration and deployment - and focus
>> on
>> what you do best, core application coding. Discover what's new with
>> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>>
>
>
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
> trial. Simplify your report design, integration and deployment - and focus on
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>



-- 
Andoni Morales Alastruey

LongoMatch:The Digital Coach
http://www.longomatch.ylatuya.es




More information about the gstreamer-devel mailing list