25

Does anybody know the difference between Win-builds and MinGW-builds? I'm really interested in C++11 (14) compiler for Windows, but unfortunately MSVC is not yet fully C++11 compliant.

Alexander Shukaev
  • 16,674
  • 8
  • 70
  • 85
Elvis Dukaj
  • 7,142
  • 12
  • 43
  • 85
  • 1
    You may also want to consider [clang](http://clang.llvm.org/get_started.html). – Peter Dec 10 '13 at 13:20
  • 1
    for what I know clang is not supported on windows – Elvis Dukaj Dec 10 '13 at 13:26
  • True, it's not yet fully supported on Windows. For the current state see: http://blog.llvm.org/2013/09/a-path-forward-for-llvm-toolchain-on.html – Peter Dec 10 '13 at 13:32
  • The project attempt to build llvm and clang with MSVC-STL implementation. Maybe is better trying to allow libc++ to build on Windows without msvc dependencies. For that I don't belive much in that project – Elvis Dukaj Dec 10 '13 at 13:40

1 Answers1

31

The difference is simple: they have little bit different goals.

In particular, if you want to develop on Windows (i.e. don't need cross-compilation), then you better off with MinGW-builds project which essentially provides several feature-rich variants of the MinGW-w64 toolchain. The table in the link gives good summary of the features I'm talking about. You can basically pick the compiler based on your requirements to addressing model, threading model, exception model. I consider it mature and stable as I use it for everyday work and I'm very satisfied with the quality.

On the other hand, Win-builds project's primary goal seems to be cross-compilation. You'll notice that in their thesis in the link, and you'll also notice that it is less feature-rich than MinGW-builds, hence you have less flexibility with it. It is also relatively new compared to MinGW-builds, so I would expect to potentially experience some issues with it.

NOTE: Please, understand that both of these projects are simply builds (distributed ready-to-use binaries) of the MinGW-w64 toolchain (GCC port for Windows which supports both x86 and x64 targets) on whose web-site both links above are pointing. They are provided only for user convenience, so that we (users) don't have to hassle with compilation of the MinGW-w64 toolchain ourselves, but nobody prevents you from doing that if you're experienced enough and know what you want.

For further reading on related topic and C++11, I would recommend my other answer which you might find interesting.

Good luck.

Community
  • 1
  • 1
Alexander Shukaev
  • 16,674
  • 8
  • 70
  • 85
  • 8
    also not mentioned are some specific differences: (1) mingw-builds has merged with mingw-w64 & win-builds is a separate party, (2) win-builds includes a package-manager `yypkg` (similar to `apt-get` or `yum`) to add up to 62 additional packages built with win-builds (3) mingw-builds includes gfortran which might be important for math/science/engineering types like myself (EG building BLAS and LAPACK require gfortran) and (4) win-builds allows switching toolchains using `. /opt/windows_64/bin/win-builds-switch 64` or `. /opt/windows_32/bin/win-builds-switch 32` – Mark Mikofski Aug 05 '14 at 20:14
  • So, err, what's the difference? – Ant6n May 30 '21 at 16:27