Mark
Mark

Reputation: 5100

MSYS2: is a windows or unix environment?

I'm confused about the environment. Using MSYS2 under Windows, I want to compile, say, the boost library:

http://www.boost.org/users/history/version_1_64_0.html

What file I have to download? The one for Windows or the one for unix?

Upvotes: 1

Views: 1899

Answers (1)

David Grayson
David Grayson

Reputation: 87486

MSYS2 is a not a Unix environment. It is a hybrid environment made up of these main components:

  1. POSIX-emulation layer called msys-2.0.dll, which is a fork of cygwin.
  2. Tools like GNU Make, Bash, and ls that depend on the msys-2.0.dll runtime.
  3. pacman, another msys-2.0.dll program, that lets you install precompiled packages from the MSYS2 developers.
  4. Native Windows software, which lives under the /mingw32 (for 32-bit) and /mingw64 (for 64-bit) directories.

Anyway, it seems like you are just getting started with MSYS2 and don't know much about it. If your goal is to write native Windows software that could some day be used outside of MSYS2, you should install the native Windows version of Boost provided by the MSYS2 developers. So run one of the commands below:

pacman -S mingw-w64-i686-boost

or

pacman -S mingw-w64-x86_64-boost

Then make sure you are using the right flavor of MSYS2 shell, and make sure you install the corresponding GCC toolchain. For 32-bit development, you must launch MSYS2 with the "MinGW-w64 32-bit Shell" shortcut and use pacman to install mingw-w64-i686-toolchain (pacman -S mingw-w64-i686-toolchain).

If you try to download binaries from boost's website, you will likely run into all sorts of compatibility issues. It's better to use software built using an MSYS2 GCC toolchain, especially if MSYS2 already has a package for that software.

Upvotes: 4

Related Questions