How do I invoke the MinGW cross-compiler on Linux?

Martin Melka picture Martin Melka · Apr 13, 2013 · Viewed 47.6k times · Source

I have a project that I want to cross-compile for Windows. I have the appropriate Makefile and everything works with g++. I've run

$ apt install mingw-w64

and downloaded 500 MB of packages, but I cannot find out how to actually run it. There is no mingw executable, so how do I actually compile with it?

Answer

gipi picture gipi · Apr 13, 2013

If you look at the file lists on the Ubuntu package webserver for mingw-w64's constituent packages:

You can see that mingw-w64 provides a toolchain, i.e. a set of alternative tools (compiler, linker, headers, etc.) used to compile your code for another system.

Assuming you want to compile C++ code for a 64-bit system, you'll need to use /usr/bin/x86_64-w64-mingw32-g++-win32. You can use the CXX environment variable to tell most Makefiles to use that compiler to compile code.