[FFmpeg-devel] [RFC FIX] Build error with ffmpeg 3.1.3 (and current git) on cygwin

Hendrik Leppkes h.leppkes at gmail.com
Thu Sep 22 13:47:39 EEST 2016


On Thu, Sep 22, 2016 at 12:30 PM, Michael Fritscher
<michael.fritscher at telematik-zentrum.de> wrote:
> Hi,
>
> I try to build ffmpeg 3.1.3 on cygwin64 on Windows.
>
> Configstring: ./configure --prefix=/usr/local --enable-ffplay
> --enable-ffmpeg --enable-ffserver --enable-gpl --enable-version3
> --enable-nonfree --enable-shared --enable-libfreetype --enable-libgsm
> --enable-libmp3lame --enable-libopencv --enable-libtheora --enable-libvorbis
> --enable-libx264 --enable-libxvid --enable-ffplay --enable-outdev=sdl
> --enable-outdev=xv --enable-indev=dshow --enable-pthreads --enable-ffplay
> --enable-ffmpeg --enable-ffserver --enable-demuxer=mpegvideo
> --enable-parser=mpegvideo --enable-muxer=mpjpeg --enable-muxer=mjpeg
> --enable-demuxer=mjpeg --enable-parser=mjpeg
>
> Output:
> CC      cmdutils.o
> cmdutils.c: In Funktion »init_dynload«:
> cmdutils.c:115:5: Fehler: Implizite Deklaration der Funktion
> »SetDllDirectory« [-Werror=implicit-function-declaration]
>       SetDllDirectory("");
>
> My quick fix was to add
>
> #if HAVE_SETDLLDIRECTORY
> #include <windows.h>
> #endif
>
> on line 64. Is this the right way to cope with this? At least it compiles,
> links and works ;-)
>
> In current git I found
> #ifdef _WIN32
> #include <windows.h>
> #endif,
>
> which does not work under cygwin. Apparently _WIN32 is not defined in this
> environment.
>

If WIN32 would not be defined, then the code in question would never
be executed, since its under the same condition.
Rather, you should find out why your windows.h does not expose this
API, which is available in all currently supported versions of
windows.

- Hendrik


More information about the ffmpeg-devel mailing list