[[https://www.msys2.org/|MSYS2]] ist eine Windows Umgebung die ein Unix-ähnliches Terminal (bash, coreutils) bietet, einen Paketmanager (pacman) mitbringt und mehrere Toolchain-"Welten" hat (z. B. UCRT64, MINGW64, CLANG64) in denen man native Windows-Programme kompiliert.
* MSYS = Unix-Tools zum Arbeiten (Skripte, bash, git, etc.)
* MINGW/UCRT/CLANG = Windows-Kompiler (gcc/clang, libs, cmake, etc.)
MSYS2 Installer auf [[https://www.msys2.org/|msys2.org]]. Die verschiedenen Umgebungen/Toolchains liegen im Installationsordner. Man kann aber auch den PATH anpassen und auf die entsprechenden Ordner lenken.
# Erstes Update
pacman -Syu
# Wenn MSYS2 danach verlangt das Terminal zu schließen: schließen und neu öffnen, dann nochmal. Damit ist System + Paketdatenbank sauber aktualisiert.Suchen
pacman -Ss cmake
# Installieren
pacman -S
# Entfernen (inkl. ungenutzter Abhängigkeiten)
pacman -Rns
# Installierte Pakete anzeigen
pacman -Q
pacman -Syu
pacman -S mingw-w64-x86_64-gcc
pacman -S mingw-w64-x86_64-cmake
pacman -S mingw-w64-x86_64-ninja
pacman -S mingw-w64-x86_64-python
pacman -S mingw-w64-x86_64-gdb
In einer UCRT64-Shell installiert man typischerweise Pakete mit Präfix. Z.B: (UCRT)
pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-ucrt-x86_64-cmake
pacman -S mingw-w64-ucrt-x86_64-ninja
pacman -S mingw-w64-ucrt-x86_64-python
pacman -S mingw-w64-ucrt-x86_64-gdb
Beispiel
pacman -S --needed mingw-w64-x86_64-toolchain
cat > hello.c <<'EOF'
#include
int main() {
puts("Hello from MSYS2!");
return 0;
}
EOF
gcc hello.c -o hello.exe
./hello.exe
Typische Tools installieren (Git, curl, etc.)
# In UCRT64 (Tools in der UCRT-Umgebung)
pacman -S mingw-w64-ucrt-x86_64-git mingw-w64-ucrt-x86_64-curl mingw-w64-ucrt-x86_64-wget mingw-w64-ucrt-x86_64-unzip
# In MSYS ("Unix-Tools" unabhängig vom Compiler)
pacman -S git curl wget unzip