Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →For a new GCC setup that builds native Windows programs, install MSYS2 and use its UCRT64 environment. Open the UCRT64 terminal, install GCC with Pacman, then compile and run a small C program to verify the toolchain. MSYS2 also provides a Unix-like shell and other environments; keep the compiler and libraries you use within one compatible environment.
What MSYS2 provides—and which environment to choose
MSYS2 combines a package manager and Unix-like command-line tools with separate environments for different compiler toolchains and runtime targets. The MSYS environment supplies tools intended to run in MSYS’s compatibility environment. UCRT64 is the straightforward choice for GCC-based, 64-bit native Windows programs when a project does not require something else. CLANG64 is an LLVM/Clang alternative.
As an Amazon Associate I earn from qualifying purchases.
The MSYS2 project documentation advises, “If you are unsure, go with UCRT64.” Its environments page also records that MINGW64 is being deprecated; it is not the recommended starting point for a new setup. See MSYS2’s environment guide for the distinctions and current status.
Check Windows compatibility and install MSYS2
The MSYS2 GUI installer requires 64-bit Windows 10 version 1809 or newer. Minimum Windows requirements for packages can differ by package family, so check the project’s live supported Windows versions and hardware page if you are unsure whether a particular package will run on your system.
#1 Best Overall
- Download and run the installer from the official MSYS2 site.
- Follow the installer prompts and allow it to launch a terminal when installation finishes. The current installer opens a UCRT64 terminal.
- Use that UCRT64 terminal for the commands in the next section. If you open a different MSYS2 environment, package names and the resulting runtime target may differ.
Install and verify GCC in UCRT64
In the UCRT64 terminal, install the GCC package using Pacman, MSYS2’s package manager. The package name identifies the UCRT64 target:
pacman -S mingw-w64-ucrt-x86_64-gcc
When prompted, confirm the installation. Then check that the compiler is available:
gcc --version
To test a complete compile-and-run cycle, create hello.c in a working directory with this content:
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #2
#include <stdio.h>
int main(void) {
puts("Hello, C");
return 0;
}
From the same UCRT64 terminal and directory, compile and run it:
gcc hello.c -o hello.exe
./hello.exe
A version string from the first command and Hello, C from the second confirm that GCC can compile and run a basic program in this environment. For more on Pacman and package naming, see MSYS2’s package-management guide.
Add build tools only for your project’s build system
GCC is the compiler; a project may also need a build system and its supporting tools. There is no single extra package list that applies to every C project. Add the tools the project actually uses, and install matching packages from the same environment as GCC.
For CMake projects targeting Windows
Use MSYS2’s MinGW CMake package rather than a CMake package intended for MSYS-runtime builds. In UCRT64, the package pattern is mingw-w64-ucrt-x86_64-cmake. Confirm its current name in the package database before installing; the MSYS2 CMake guide identifies the MinGW CMake package family and recommends Ninja as the current default generator.
Windows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallCrashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minuteSelect the generator explicitly. With Ninja installed in the same environment, configure a build from the directory where you want the build files, substituting the actual source path:
cmake -G Ninja <path-to-source> -DCMAKE_BUILD_TYPE=Release
Then build with:
cmake --build .
cmake --build works across generators, so it is a useful build command even if the project uses another supported generator. MSYS2 also documents MSYS Makefiles and MinGW Makefiles; choose a generator that matches the intended target and installed tools. Consult Using CMake in MSYS2 for current package and generator guidance.
For Make or Autotools projects
Install Make and any other required build utilities from the same environment as the compiler. Which utilities are needed depends on the project’s instructions; do not install a blanket set without checking the build system’s requirements.
Keep runtimes and libraries compatible
MSYS2 environments can target different C runtimes and C++ standard libraries. Object files and static libraries built for different targets should not be mixed: runtime structures and types can differ, even when the files have familiar names such as .o or .a. For a beginner UCRT64 setup, keep GCC, dependencies, and build tools in UCRT64 and use libraries built for that target. The MSYS2 environment documentation explains the runtime distinctions.
Handle paths at shell and Windows-tool boundaries
Within the MSYS2 shell, Unix-style paths such as /c/Users/Ada/project are natural for MSYS2 utilities. Native Windows programs may expect Windows-style paths instead. Be deliberate when passing a path from one kind of program to another; do not assume every tool interprets paths identically or casually mix shell paths with backslash paths.
MSYS2 provides cygpath to convert between Unix, Windows, and mixed path forms. Use it when a command or script passes paths across that boundary, and consult the filesystem paths guide for details.
Use the terminal from an editor if you prefer
You can edit code in an IDE or text editor while using the same MSYS2 environment for builds. Configure its integrated terminal or build commands to invoke the UCRT64 tools, rather than silently using a different compiler or runtime. MSYS2 maintains examples and notes for editor integration on its IDEs and text editors page.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.




