Menu

MSYS2 + MinGW 64

2015-02-02
2015-02-04
  • Giovanni Remigi

    Giovanni Remigi - 2015-02-02

    Hi everybody, my name is Giovanni and I'm a Software Engineer.

    For hobby I like playing around with C++ on Windows so I wrote a little tutorial about installing MSYS2, MinGW 64 with gcc 4.9.2 and compiling few common libraries including QT5.4.

    I'm keeping this tutorial up-to-date for the last 3 years: http://www.kineticsystem.org/mingw

    I hope you will find it useful.

    Cheers, Giovanni

     
  • Ray Donnelly

    Ray Donnelly - 2015-02-03

    Hi everybody, my name is Giovanni and I'm a Software Engineer.

    Hi,

    Thanks for your message, and I really hope you will not be discouraged by my reply. Both myself and Alexey spent a long time working on quite similar projects and build scripts for Windows before we concluded that something "better" needed to be created.

    For hobby I like playing around with C++ on Windows so I wrote a little
    tutorial about installing MSYS2, MinGW 64 with gcc 4.9.2 and compiling few
    common libraries including QT5.4.

    I'm keeping this tutorial up-to-date for the last 3 years:
    http://www.kineticsystem.org/mingw

    You seem to be using only the MSYS2 bash shell here, rather than using the MSYS2 distribution (i.e. the ~1000 packages you can install via pacman) or the MSYS2 package build system (i.e. the ~1000 PKGBUILD files and sets of patches which are used to build those packages). For example, we've got fully featured Qt 5.4.0 packages that include Webkit.

    One of MSYS2's goals is to get away from the traditional ad-hoc nature of building Open Source software on Windows, where the internet is full of hundreds of individuals using and promoting their own different, incompatible build systems or scripts. We aim to be a cohesive software distribution quite like ArchLinux. As such, very near everything is built within MSYS2 using self-hosted tools, allowing re-use (shared libraries) and reproducibility (quickly identifying and nullifying environmental differences).

    Please checkout our packages and PKGBUILD files. Perhaps you would be interested in contributing to those? I'm guessing possibly not considering that you wrote:

    "It is possible to install default versions of both MinGW for 32 and 64 bits compilers
    running the following two commands but I personally prefer to download the version
    want as it gives me more freedom to experiment (see above)."

    .. however, I should point out that the mingw-builds project and MSYS2 project overlap as Alexey is heavily involved in both. Also, the compilers that you recommend (posix threads, SEH) are configured the same as the default MSYS2 mingw-w64 x86-64 compiler.

    I hope you will find it useful.

    Here are our packages if you need to see how we build Qt5 (as you specifically mentioned Webkit issues) or anything else:
    https://github.com/Alexpux/MINGW-packages/tree/master/
    https://github.com/Alexpux/MSYS2-packages/tree/master/

    Cheers, Giovanni

    Best regards,

    Ray.

     

    Last edit: Ray Donnelly 2015-02-03
  • Giovanni Remigi

    Giovanni Remigi - 2015-02-04

    I'm having a look at the package tree above and it is very interesting. I never used PKGBUILD files so it is definitely worth value to dig it deeper - time permitting.

    Is there any specific reasons about the overlap of packages between MINGW and MSYS2? For example, if I want to use pacman to install Perl or Python which tree should I choose?

    Thanks again,

    Giovanni

     
  • Ray Donnelly

    Ray Donnelly - 2015-02-04

    You should read:

    https://sourceforge.net/p/msys2/wiki/Contributing%20to%20MSYS2/

    Our MSYS2 packages exist (mostly) to provide the tools necessary to build native Windows packages. Those are the final goal.

    It's often essential that the tools run during software fetching, configuring and building are MSYS2 tools (i.e. Cygwin-y as File Hierarchy System and posix-emulation are expected) so we provide them. These software build processes should 'go native' as soon as possible though since MSYS2 programs are usually not as fast as native programs, so for example, nearly all of our MINGW-packages are built with the native GCC instead of the MSYS2 mingw-w64-cross GCC, even though the bash.exe that is used to configure them and run the makepkg-* is an MSYS2 program.

    In conclusion, I'd get both and use whichever is necessary (or fastest) in each situation.

     

    Last edit: Ray Donnelly 2015-02-04
MongoDB Logo MongoDB