Projects / MXE (M cross environment)

MXE (M cross environment)

MXE (M cross environment) is a Makefile that compiles a cross compiler and cross compiles many free libraries such as SDL and Qt. Thus, it provides a nice cross compiling environment for various target platforms.

Operating Systems

Recent releases

  •  28 Jul 2013 11:16

    Release Notes: Most packages were updated to their latest versions. Many new packages are supported. There is support for mingw-w64 based toolchains targeting 32 and 64-bit architectures. With the addition of Qt5, there is no longer a prefixed version of qmake; see the Qt section of the tutorial for the new way to invoke qmake. FreeBSD is no longer fully supported. Qt5, ocaml*, and 8 other packages are excluded from the build. Current users are strongly encouraged to start with a clean tree, as the toolchain has been updated and requires a full rebuild.

    •  30 Apr 2012 12:22

      Release Notes: The project has been renamed from mingw-cross-env (MinGW cross compiling environment) to MXE (M cross environment). The release tarballs have been replaced with a Git checkout. Most packages have been updated to their latest versions. New packages are supported: agg, cgal, eigen, file, gta, json-c, libgnurx, libharu, libircclient, libssh2, libxml++, llvm, lzo, mpfr, nettle, opencsg, qjson, qwtplot3d, vtk, and wt.

      •  07 Jun 2011 21:49

        Release Notes: Minor bugs were fixed in several packages. Almost all packages were updated to their latest version. The gtkmm and gtksourceviewmm packages have been renamed to gtkmm2 and gtksourceviewmm2. New packages are supported: libass, poco, and t4k_common.

        •  04 Apr 2011 23:32

          Release Notes: This release fixes a download error caused by the pixman project (a sudden change of their URL scheme without proper redirects).

          •  19 Mar 2011 19:07

            Release Notes: The download mechanisms were improved. A CMake toolchain file is now provided to simplify cross-compiling projects that use CMake. Support for Debian/Lenny was dropped. The gtk package was renamed to gtk2. Almost all packages were updated to their latest version. The following new packages are supported: dbus, graphicsmagick, libical, liboauth, physfs, and vigra. boost::filesystem users should note that version 3 is a major revision and now the default in 1.46.

            Recent comments

            07 Feb 2010 10:16 vog

            Dear sonicx_,

            OpenMP support is indeed an open issue and you're welcome to help. Feel free to join the project mailing list and let's discuss the details there:



            03 Dec 2009 14:50 sonicx_

            Great work!
            however, using the 2.9 release i cannot get OpenMP threads to work with cross-compiled executables.
            take this example:

            #include <omp.h>
            #include <stdio.h>
            int main() {
            #pragma omp parallel
            printf("Hello from thread %d, nthreads %d\n", omp_get_thread_num(), omp_get_num_threads());

            compile it with:

            i686-pc-mingw32-g++ -O0 -g3 -fopenmp -static -o test.exe test.cpp

            run it on windows, and get a segfault.
            please correct me if i made a mistake.

            01 Sep 2009 15:07 vog

            Dear DJ_Art,

            Sorry for the late reply.

            Mingw-cross-env is expected to work well on Linux. Each release is tested on many different systems, Debian being one of them. The mingw-cross-env Makefile avoids to build any package documentation or unneeded executables, and it handles code generators properly (i.e. builds them natively instead of cross compiling). So if you encounter build errors, it's definitively a bug in mingw-cross-env.

            Please check whether your problem still exists with mingw-cross-env release 2.7. If it does, please join the project mailing list (, restate your problem and add further details such as your Linux distribution, whether 32 or 64 bit, etc. Thanks!


            19 Jun 2009 14:38 DJ_Art

            Are you sure theora compiles on linux ? It actually, builds, begins to install but then at some point it wants to generate the documentation:

            Making install in spec
            make[3]: Entering directory `/home/user/src/mingw_cross_env-2.6/tmp-theora/libtheora-1.0/doc/spec'
            fig2dev -L pdf -p 0 pic-frame.fig pic-frame.pdf
            fig2dev -L pdf -p 0 hilbert-mb.fig hilbert-mb.pdf
            [etc .. etc...]
            fig2dev -L pdf -p 0 pic_odd_even.fig pic_odd_even.pdf
            i586-mingw32msvc-gcc -Wall -Wno-parentheses -O3 -fforce-addr -fomit-frame-pointer -finline-functions -funroll-loops vp3huff.c -o vp3huff
            ./vp3huff > vp3huff.tex
            /bin/sh: ./vp3huff: cannot execute binary file
            make[3]: *** [vp3huff.tex] Error 126
            make[3]: Leaving directory `/home/user/src/mingw_cross_env-2.6/tmp-theora/libtheora-1.0/doc/spec'
            [etc etc other errors]

            vp3huff is of course PE32 executable for MS Windows (console) Intel 80386 32-bit, it cannot be run on Linux/Unix, so something should be done about it here, either configure without documentation, or I don't know ...

            Other than that, I think it partially installed some files from libtheora, but it doesn't go clean and perhaps other files are missing because it didn't have the chance to go beyond doc/spec target :-/

            14 Apr 2009 20:40 mdupont

            Great stuff!


            Project Spotlight


            A Fluent OpenStack client API for Java.


            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.