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: Difference between revisions
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
== [[MSYS2]] == | == [[MSYS2]] == | ||
“MSYS2”: http://sourceforge.net/projects/msys2/ and https://github.com/msys2 : 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. | “MSYS2”: http://sourceforge.net/projects/msys2/ and https://github.com/msys2 : 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: | 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 == | == Obtain & Install == | ||
MSYS2 ( | MSYS2 ("https://msys2.github.io/":https://msys2.github.io/). (Use HTTPS based secure connection and) obtain MSYS2. Run the installer binary. Install MSYS2 in C:drive in "msys2" folder. | ||
== Initial Setup of MSYS2 == | == Initial Setup of MSYS2 == | ||
Line 15: | Line 25: | ||
* Run MSYS2 shell (Command Prompt). C:2\msys2_shell.bat | * Run MSYS2 shell (Command Prompt). C:2\msys2_shell.bat | ||
* First update msys2 core components (if you have not done it yet): | * First update msys2 core components (if you have not done it yet): | ||
<code> | |||
pacman -Sy | |||
pacman —needed -S bash pacman pacman-mirrors msys2-runtime | |||
</code> | |||
You must exit out from MSYS2-shell, restart MSYS2-shell, then run below command, to complete rest of other components update: | |||
<code> | |||
pacman -Su | |||
</code> | |||
Exit out of MSYS2-shell, restart MSYS2-shell, then you are ready to use MSYS2-shell. | |||
Note: for initial installation & setup, please also see this page http://sourceforge.net/p/msys2/wiki/MSYS2&amp;#37;20installation/ | |||
Here -S means "sync". | |||
== Prepare MSYS2 for Qt related build development environment == | == 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 ( | * 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":https://github.com/Alexpux/MINGW-packages, "MSYS2-packages":https://github.com/Alexpux/MSYS2-packages): | ||
<code> | |||
pacman -S base-devel git mercurial cvs wget p7zip | |||
pacman -S perl ruby python2 mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain | |||
</code> | |||
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 | * Build Qt : follow Qt building/compiling related articles | ||
** [[MinGW-64-bit]] | ** [[MinGW-64-bit]] | ||
** or, [[Building-Qt-5-from-Git]], etc | ** 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 | ** 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 == | == Obtain Pre-Built Qt & QtCreator binary files and Use instantly without Building/Compiling == | ||
Line 30: | Line 56: | ||
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. | 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: | * 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: | ||
<code> | |||
pacman -S mingw-w64-i686-qt-creator mingw-w64-x86_64-qt-creator | |||
</code> | |||
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: | |||
<code> | |||
pacman -S mingw-w64-i686-qt5-static mingw-w64-x86_64-qt5-static | |||
</code> | |||
Note: There is no static edition of QtCreator. | |||
== How to build using MSYS2's software-building scripts (PKGBUILD & patches) == | == How to build using MSYS2's software-building scripts (PKGBUILD & patches) == | ||
* run MSYS2-shell (C:2\msys2_shell.bat) | * 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 | * create a folder to download build related scripts, then git clone software-building script REPO, from MSYS2's "MINGW-packages":https://github.com/Alexpux/MINGW-packages REPO (mirror) | ||
* goto your choice of software-building script's sub-folder, which has a | <code> | ||
* update it: | mkdir /c/msys2/repos | ||
* build it: | cd /c/msys2/repos | ||
* 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 | git clone https://github.com/Alexpux/MINGW-packages.git | ||
</code> | |||
* 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: | |||
<code> | |||
cd ${package-name} | |||
</code> | |||
For example, we want to build Qt5, so here our command will be: cd /c/msys2/repos/mingw-packages/mingw-w64-qt5 | |||
* update it: | |||
<code> | |||
updpkgsums | |||
</code> | |||
* build it: | |||
<code> | |||
makepkg-mingw -fsiL | |||
</code> | |||
* 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") | |||
<code> | |||
pacman -U ${package-name}'''.pkg.tar.xz | |||
</code> | |||
So for our example, our install command will be: pacman -U'''.pkg.tar.xz |
Revision as of 10:58, 25 February 2015
MSYS2
“MSYS2”: http://sourceforge.net/projects/msys2/ and https://github.com/msys2 : 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 ("https://msys2.github.io/":https://msys2.github.io/). (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 this page http://sourceforge.net/p/msys2/wiki/MSYS2&#37;20installation/ Here -S means "sync".
- 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":https://github.com/Alexpux/MINGW-packages, "MSYS2-packages":https://github.com/Alexpux/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":https://github.com/Alexpux/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