The world of software development, particularly for advanced systems like those powering modern drones, often necessitates a robust and versatile compilation toolchain. While Windows is a popular operating system, it doesn’t natively include the GNU C Compiler (GCC), a cornerstone of open-source development and a critical tool for many embedded systems and cross-platform projects. This guide will walk you through the process of installing GCC on your Windows machine, enabling you to compile C and C++ code with the power and flexibility that GCC offers. This is particularly relevant for drone enthusiasts and developers who might be working with open-source flight controllers, custom firmware, or developing applications that interface with drone hardware.

Understanding the Need for GCC on Windows
The GNU C Compiler is a free and open-source compiler system. It supports a wide range of programming languages, including C, C++, Objective-C, Fortran, Ada, Go, and D. For Windows development, especially in areas that mirror the embedded systems prevalent in the drone industry, GCC offers several advantages:
- Cross-Platform Development: Many drone firmwares and libraries are developed using GCC on Linux or macOS. Being able to compile and test these on Windows facilitates a more seamless development workflow, allowing for debugging and prototyping without needing a separate Linux environment.
- Embedded Systems: A significant portion of drone hardware and firmware is built using C and C++. GCC is the de facto standard for compiling code for many embedded microcontrollers that are commonly found in drones.
- Open-Source Ecosystem: The drone community heavily relies on open-source projects. Many of these projects utilize GCC, and having it installed on your Windows machine allows you to contribute to, modify, or build upon this software directly.
- Performance and Optimization: GCC is renowned for its aggressive optimization capabilities, which can be crucial for performance-sensitive applications like real-time control systems found in UAVs.
While Microsoft’s Visual Studio provides its own C++ compiler (MSVC), GCC offers a different set of features and compatibility that can be indispensable for certain types of development, particularly when working with projects that originate from non-Windows ecosystems.
Method 1: Using MinGW-w64
MinGW-w64 (Minimalist GNU for Windows) is a popular choice for installing GCC on Windows. It provides a native Windows port of the GNU Compiler Collection. This method allows you to compile Windows applications directly without relying on a Linux emulation layer.
Step 1: Download the MinGW-w64 Installer
- Navigate to the MinGW-w64 Website: Open your web browser and go to the official MinGW-w64 website. The most common download location is typically through SourceForge. Search for “MinGW-w64 download” to find the repository.
- Choose the Correct Installer: On the download page, you will likely find several installer options. For most users, the
mingw-w64-install.exefile is the appropriate choice. Pay attention to whether you need a 32-bit (i686) or 64-bit (x86_64) version of GCC. If your Windows operating system is 64-bit, it is generally recommended to install the 64-bit toolchain. - Download the Installer: Click on the download link for the chosen installer.
Step 2: Run the MinGW-w64 Installer
- Execute the Installer: Once the download is complete, run the
mingw-w64-install.exefile. - Installation Options: The installer will present you with several configuration options.
- Architecture: Select
x86_64for 64-bit Windows ori686for 32-bit Windows. - Threads: Choose
posixorwin32.posixis generally preferred for compatibility with many open-source projects. - Exception Handling: Select
seh(Structured Exception Handling) orsjlj(Setjmp/Longjmp).sehis the modern standard for 64-bit Windows. - Revision: Leave this at the default unless you have a specific reason to change it.
- Architecture: Select
- Installation Directory: Choose an installation directory. It is recommended to install MinGW-w64 to a simple path without spaces, such as
C:mingw-w64. - Proceed with Installation: Click “Install” and wait for the process to complete. The installer will download and set up the necessary GCC components.
Step 3: Add MinGW-w64 to the System PATH
For the GCC commands to be accessible from any command prompt or terminal window, you need to add the MinGW-w64 bin directory to your system’s PATH environment variable.
- Locate the
binDirectory: Navigate to your MinGW-w64 installation directory. Inside, you will find abinfolder (e.g.,C:mingw-w64x86_64-8.1.0-posix-seh-rt_v6-rev0mingw64bin). The exact path might vary slightly based on the version you installed. - Open System Properties: Right-click on “This PC” or “My Computer” and select “Properties.”
- Advanced System Settings: Click on “Advanced system settings.”
- Environment Variables: In the System Properties window, click on the “Environment Variables…” button.
- Edit the PATH Variable: Under “System variables,” find the variable named
Pathand select it. Then, click the “Edit…” button. - Add New Entry: In the “Edit environment variable” window, click “New” and paste the full path to your MinGW-w64
bindirectory. - Confirm Changes: Click “OK” on all open windows to save the changes.
Step 4: Verify the Installation
- Open a New Command Prompt: Open a new Command Prompt window (or PowerShell). It’s crucial to open a new one after modifying the PATH to ensure the changes are loaded.
- Check GCC Version: Type the following command and press Enter:
bash
gcc --version
If the installation was successful and the PATH is set correctly, you should see output displaying the GCC version information. You can also check for the C++ compiler:
bash
g++ --version
Method 2: Using MSYS2
MSYS2 provides a software distribution and building platform for Windows. It offers a POSIX-compatible command-line environment and allows for easy installation of various development tools, including GCC, via its package manager, pacman. This method is often preferred for its ease of updating and managing packages.
Step 1: Download and Install MSYS2
- Visit the MSYS2 Website: Go to the official MSYS2 website (
msys2.org). - Download the Installer: Download the latest installer for MSYS2 (e.g.,
msys2-x86_64-latest.exe). - Run the Installer: Execute the downloaded installer and follow the on-screen prompts. It’s recommended to install MSYS2 in the default location, typically
C:msys64.
Step 2: Update MSYS2 Packages
After installation, it’s essential to update the core MSYS2 system and its packages.
- Launch MSYS2: Find and launch “MSYS2 MSYS” from your Start menu. This will open a terminal window.
- Update the Pacman Database and Core Packages: In the MSYS2 terminal, run the following command:
bash
pacman -Syu
The system might prompt you to close the terminal and reopen it. If so, close it and launch “MSYS2 MSYS” again. - Update All Packages: After reopening, run the update command again to ensure all packages are up-to-date:
bash
pacman -Su
Step 3: Install GCC Toolchain

MSYS2 uses pacman to install development tools. You can install the MinGW-w64 GCC toolchain for native Windows applications.
- Install the MinGW-w64 GCC Toolchain: In the MSYS2 terminal, run the following command to install the GCC compiler (for C and C++) and other essential build tools:
bash
pacman -S mingw-w64-x86_64-toolchain
This command installs the 64-bit GCC toolchain. If you need a 32-bit toolchain, you would usepacman -S mingw-w64-i686-toolchain. - Confirm Installation: Press
Ywhen prompted to confirm the installation of the selected packages and their dependencies.
Step 4: Add MSYS2 Binaries to the System PATH
Similar to the MinGW-w64 method, you need to add the MSYS2 bin directories to your system’s PATH for easy access to GCC. MSYS2 typically installs two primary bin directories that you’ll want to add:
C:msys64usrbin(for MSYS2 utilities)C:msys64mingw64bin(for the MinGW-w64 GCC toolchain)
Follow the same steps as outlined in “Step 3: Add MinGW-w64 to the System PATH” from Method 1, adding both of these paths to your system’s Path environment variable.
Step 5: Verify the Installation
- Open a New Command Prompt or MSYS2 Terminal: Open a new Command Prompt window or launch “MSYS2 MinGW 64-bit” from your Start menu.
- Check GCC Version: In either terminal, type:
bash
gcc --version
And for C++:
bash
g++ --version
You should see the GCC version information, confirming a successful installation.
Method 3: Using Windows Subsystem for Linux (WSL)
For developers who want a full Linux environment within Windows, the Windows Subsystem for Linux (WSL) is an excellent option. WSL allows you to run a Linux distribution (like Ubuntu, Debian, or Fedora) directly on Windows, complete with its own package manager, making GCC installation as simple as it would be on a native Linux system.
Step 1: Install WSL and a Linux Distribution
- Enable WSL: Open PowerShell as an administrator and run:
powershell
wsl --install
This command will enable the necessary features, download the latest Linux kernel, and install a default Linux distribution (usually Ubuntu). You may need to restart your computer. - Set Up Your Linux Distribution: After restarting, your chosen Linux distribution will launch. You’ll be prompted to create a username and password for your Linux environment.
- Install Other Distributions (Optional): If you want to install a different Linux distribution, you can find them in the Microsoft Store or use the command
wsl --list --onlineto see available options andwsl --install -d <DistributionName>to install a specific one.
Step 2: Update Your Linux Distribution and Install GCC
Once your Linux distribution is set up and running within WSL:
- Open Your Linux Distribution Terminal: Launch your installed Linux distribution (e.g., “Ubuntu” from the Start menu).
- Update Package Lists: It’s crucial to update your package lists first. For Debian/Ubuntu-based distributions, use:
bash
sudo apt update
- Upgrade Existing Packages: Then, upgrade all installed packages:
bash
sudo apt upgrade
- Install GCC: Install the GNU Compiler Collection and the build-essential package, which includes
makeand other common development tools:
bash
sudo apt install build-essential
For C++ support,build-essentialtypically includesg++as well. If you want to be explicit, you can also installg++directly:
bash
sudo apt install g++
Step 3: Verify the Installation
- Check GCC Version: In your Linux distribution’s terminal, run:
bash
gcc --version
And for C++:
bash
g++ --version
This will confirm that GCC is installed and ready to use within your WSL environment.
Compiling and Testing Your First Program
Regardless of the installation method chosen, you can now compile C/C++ code.

Example: A Simple “Hello, World!” Program
-
Create a Source File:
-
MinGW-w64/MSYS2: Open a text editor and create a file named
hello.cwith the following content:#include <stdio.h> int main() { printf("Hello, World from GCC on Windows!n"); return 0; }Save this file in a directory you can easily access from your command prompt.
-
WSL: Create the file within your Linux environment using a text editor like
nanoorvim:
bash
nano hello.c
Paste the C code above, save, and exit.
-
-
Compile the Program:
- MinGW-w64/MSYS2: Open a Command Prompt or the MSYS2 MinGW 64-bit terminal, navigate to the directory where you saved
hello.c, and run:
bash
gcc hello.c -o hello.exe
This command tells GCC to compilehello.cand create an executable file namedhello.exe. - WSL: In your Linux terminal, navigate to the directory containing
hello.cand run:
bash
gcc hello.c -o hello
WSL typically produces Linux executables (e.g.,hello) rather than.exefiles by default, though it can compile Windows executables if configured.
- MinGW-w64/MSYS2: Open a Command Prompt or the MSYS2 MinGW 64-bit terminal, navigate to the directory where you saved
-
Run the Executable:
- MinGW-w64/MSYS2: In the Command Prompt or MSYS2 MinGW terminal, type:
bash
./hello.exe
- WSL: In the Linux terminal, type:
bash
./hello
- MinGW-w64/MSYS2: In the Command Prompt or MSYS2 MinGW terminal, type:
You should see the output: Hello, World from GCC on Windows!.
Installing GCC on Windows opens up a world of possibilities for software development, especially for those interested in the technical underpinnings of drones, embedded systems, and cross-platform applications. Whether you choose the directness of MinGW-w64, the package management of MSYS2, or the full Linux experience of WSL, you are equipping yourself with a powerful tool that is essential for many advanced programming tasks.
