简体   繁体   中英

How can I install MinGW-w64 and MSYS2?

I am trying to build some open source library. I need a package management system to easily download the dependencies. At first I am using MinGW and MSYS . But the included packages are limited. Someone told me to use Mingw-w64 and MSYS2 .

I downloaded the mingw-w64-install from here . When running, it reports the following error. How can I fix it?

在此处输入图像描述

And by the way, from the Mingw-w64 download page, I see a lot of download links. Even Cygwin is listed. How are Cygwin and Mingw-w64 related?

在此处输入图像描述

My current understanding is, in the time of MinGW and MSYS, MSYS is just a nice addon to MinGW, while in Mingw-w64 + MSYS2, MSYS2 is stand-alone and Mingw-w64 is just a set of libraries it can work with. Just like Cygwin can download many different packages.

Unfortunately, the MinGW-w64 installer you used sometimes has this issue. I myself am not sure about why this happens (I think it has something to do with Sourceforge URL redirection or whatever that the installer currently can't handle properly enough).

Anyways, if you're already planning on using MSYS2, there's no need for that installer.

  1. Download MSYS2 from this page (choose 32 or 64-bit according to what version of Windows you are going to use it on, not what kind of executables you want to build, both versions can build both 32 and 64-bit binaries).

  2. After the install completes, click on the newly created "MSYS2 Shell" option under either MSYS2 64-bit or MSYS2 32-bit in the Start menu. Update MSYS2 according to the wiki (although I just do a pacman -Syu , ignore all errors and close the window and open a new one, this is not recommended and you should do what the wiki page says).

  3. Install a toolchain

    a) for 32-bit:

     pacman -S mingw-w64-i686-gcc 

    b) for 64-bit:

     pacman -S mingw-w64-x86_64-gcc 
  4. install any libraries/tools you may need. You can search the repositories by doing

     pacman -Ss name_of_something_i_want_to_install 

    eg

     pacman -Ss gsl 

    and install using

     pacman -S package_name_of_something_i_want_to_install 

    eg

     pacman -S mingw-w64-x86_64-gsl 

    and from then on the GSL library is automatically found by your MinGW-w64 64-bit compiler!

  5. Open a MinGW-w64 shell:

    a) To build 32-bit things, open the "MinGW-w64 32-bit Shell"

    b) To build 64-bit things, open the "MinGW-w64 64-bit Shell"

  6. Verify that the compiler is working by doing

     gcc -v 

If you want to use the toolchains (with installed libraries) outside of the MSYS2 environment, all you need to do is add <MSYS2 root>/mingw32/bin or <MSYS2 root>/mingw64/bin to your PATH .

MSYS has not been updated a long time, MSYS2 is more active, you can download from MSYS2 , it has both mingw and cygwin fork package.

To install the MinGW-w64 toolchain ( Reference ):

  1. Open MSYS2 shell from start menu
  2. Run pacman -Sy pacman to update the package database
  3. Re-open the shell, run pacman -Syu to update the package database and core system packages
  4. Re-open the shell, run pacman -Su to update the rest
  5. Install compiler:
    • For 32-bit target, run pacman -S mingw-w64-i686-toolchain
    • For 64-bit target, run pacman -S mingw-w64-x86_64-toolchain
  6. Select which package to install, default is all
  7. You may also need make , run pacman -S make

You can now also get the standalone personal build of MinGW-w64 from https://winlibs.com/ which requires no installation - just extract and its ready to use. This allow having multiple toolchains on the same system (eg one for Windows 32-bit and another for Windows 64-bit).

The most straightforward way, as far as I know, is to use Chocolatey to install MinGW:

choco install mingw

Then check with the command whereis gcc . It is going to be installed in C:\ProgramData\chocolatey\bin .

one more thing, to get make working, just copie (or rename if you wish) with copy mingw32-make.exe make.exe in C:\ProgramData\chocolatey\bin .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM