Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

MSYS2

From Qt Wiki
Revision as of 04:46, 27 January 2016 by AKottke (talk | contribs) (Fixed code formatting)
Jump to navigation Jump to search

En Ar Bg De El Es Fa Fi Fr Hi Hu It Ja Kn Ko Ms Nl Pl Pt Ru Sq Th Tr Uk Zh

MSYS2 and MSYS2 (Minimal SYStem 2) is an independent rewrite of MSYS, a (command-line) shell for development usage, and based on modern Cygwin (POSIX compatibility layer) and MinGW-w64 (from "MinGW-builds"), with the aim of better interoperability with native Windows software. It includes: MSYS2-shell and MinGW-w64 Win32 shell & MinGW-w64 Win64 shell. It supports & can work with both 32bit & 64bit multiple toolchains & targets, (for 64bit a 64bit operating system is needed). MSYS2 is a successor of MSYS and MinGW-builds. MSYS2-shell uses "pacman" for downloading packages from repo, and these are GPG signed & verified. Packages are by developer: lexx83 (Alexpux), mingwandroid, niXman. MSYS2 is a complete opensource development environment+shell solution+system. It can obtain related all toolchains & dependency packages from "MinGW-builds" and MSYS2 REPO, for compiling/building other software. It can also obtain various directly usable tools & language support & compilers, like: perl, python, ruby, openssl, etc.

A user has these options to choose from: by using MSYS2-shell & MinGW-w64 Win64 shell: (option-A), either download Qt or QtCreator source (from MSYS2 repo) and compile/build inside MSYS2, or (option-B), a user can get official Qt source or QtCreator source, and then compile/build using mingw-w64 toolchains obtained from MSYS2 repo, from the windows Cmd-shell, or (option-C), a user can get Qt or QtCreator software-building scripts from MSYS2's "MINGW-packages" repo, and compile/build using mingw-w64 toolchains obtained from MSYS2 repo, inside MSYS2-shell, or (option-D), a user can download pre-built binary files of Qt & QtCreator (dynamic/shared and/or static built editions) inside MSYS2, and run+use them instantly without compiling.

Obtain & Install

MSYS2, MSYS2. Use HTTPS based secure connection and obtain MSYS2. Run the installer binary. Install MSYS2 in C:drive in "msys2" folder.

Initial Setup of MSYS2

  • Run MSYS2 shell (Command Prompt). C:2\msys2_shell.bat
  • First update msys2 core components (if you have not done it yet):
pacman -Sy
pacman --needed -S bash pacman pacman-mirrors msys2-runtime

You must exit out from MSYS2-shell, restart MSYS2-shell, then run below command, to complete rest of other components update:

pacman -Su

Exit out of MSYS2-shell, restart MSYS2-shell, then you are ready to use MSYS2-shell. Note: for initial installation & setup, please also see [1]. Here -S means "sync".

Prepare MSYS2 for Qt related build development environment

  • Start MSYS2-shell. Run/execute below commands to load MinGW-w64 SEH (64bit/x86_64) posix and Dwarf-2 (32bit/i686) posix toolchains & related other tools, dependencies & components from MSYS2 REPO (MINGW-packages, MSYS2-packages):
pacman -S base-devel git mercurial cvs wget p7zip
pacman -S perl ruby python2 mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain

Note: the i686(32bit) toolchain loads into /c/msys2/mingw32/bin (C:2\mingw32\bin) directory location, and, x86_64(64bit) toolchain loads into /c/msys2/mingw64/bin (C:2\mingw64\bin) directory. Perl, Ruby, Python, OpenSSL etc loads into /c/msys2/usr/bin (C:2\usr\bin) directory.

  • Build Qt : follow Qt building/compiling related articles
    • MinGW-64-bit
    • or Building Qt 5 from Git, etc
    • Qt can also be compiled/built, using the software-building scripts from MSYS2 based MinGW-w64 Packages Repo, for details see below "PKGBUILD" section.

Obtain Pre-Built Qt & QtCreator binary files and Use instantly without Building/Compiling

If you are going to build Qt using MinGW-w64 toolchains which are inside MSYS2, then you do need to do get pre-built Qt binary files, but choice is upto you.

  • Start MSYS2-shell. Run/execute below commands, to install/load, a pre-built dynamic/shared library environment edition of Qt & QtCreator binary files from MSYS2 REPO, for developing, testing, compiling/building or releasing opensource or closedsource software:
pacman -S mingw-w64-i686-qt-creator mingw-w64-x86_64-qt-creator

If you also want to install/load, a pre-built static library environment edition of Qt binary files, for compiling & releasing opensource projects, (with almost one/single file based standalone or portable binary executable file), then run/execute below command:

pacman -S mingw-w64-i686-qt5-static mingw-w64-x86_64-qt5-static

Note: There is no static edition of QtCreator.

How to build using MSYS2's software-building scripts (PKGBUILD & patches)

  • run MSYS2-shell (C:2\msys2_shell.bat)
  • create a folder to download build related scripts, then git clone software-building script REPO, from MSYS2's MINGW-packages REPO (mirror)
mkdir /c/msys2/repos
cd /c/msys2/repos
git clone https://github.com/Alexpux/MINGW-packages.git
  • goto your choice of software-building script's sub-folder, which has a "PKGBUILD" file. For example, here we are showing how to build Qt5:
cd ${package-name}

For example, we want to build Qt5, so here our command will be: cd /c/msys2/repos/mingw-packages/mingw-w64-qt5

  • update it:
updpkgsums
  • build it:
makepkg-mingw -fsiL
  • install built package. (make sure you are inside correct sub-directory, for our example, you need to be inside here /c/msys2/repos/mingw-packages/mingw-w64-qt5) (the -U is "upgrade")
pacman -U ${package-name}'''.pkg.tar.xz

So for our example, our install command will be: pacman -U.pkg.tar.xz