[FFmpeg-devel] compile issues under mingw-cross-env

Måns Rullgård mans
Sat Jul 10 21:25:52 CEST 2010

John Calcote <john.calcote at gmail.com> writes:

> Anyone ever tried compiling ffmpeg under mingw-cross-env
> (http://www.nongnu.org/mingw-cross-env/)? I've been playing with it and
> I've found the following issues with CPPFLAGS in the generated config.mak:
> 1) I had to change -std=c99 to -std=gnu99 because _STRICT_ANSI is
> enabled if -std=c99 is used which means functions like strcasecmp aren't
> available (at least the prototypes aren't).

Wrong.  strcasecmp() is part of C99 and on any conforming system is
declared when using those flags.

> 2) I had to remove the definition of _POSIX_C_SOURCE=200112 because
> defining it causes pid_t to not be defined in sched.h.

Wrong again.  We do not use sched.h at all.  We include sys/wait.h,
which defers to sys/types.h for the pid_t type.  The standard requires
that sys/types.h define pid_t with no extra conditions imposed.

> I used the following command line to configure:
> $ configure --enable-postproc --enable-gpl --enable-x11grab
> --enable-pthreads --enable-nonfree --enable-libvorbis
> --target-os=mingw32 --enable-memalign-hack --arch=x86_64
> --cross-prefix=i686-pc-mingw32-
> Note this is a 64-bit windows build (arch=x86_64).

The combination of 64-bit and mingw is likely a recipe for trouble.
Maybe the cross-tools are better than regular mingw, I don't know.

> After making these changes in the generated config.mak file, ffmpeg and
> utilities compiled - not cleanly, mind you, but at least as cleanly as
> it does in normal non-cross builds.

What is that supposed to mean?  Condescending remarks like that will
not win our hearts.

> Any comments would be appreciated. Perhaps I'm doing something
> fundamentally wrong in my cross compile?

You seem to be using a non-c99 compilation environment.  This is not
particularly well supported.

M?ns Rullg?rd
mans at mansr.com

More information about the ffmpeg-devel mailing list