Unit 1: C++ Foundations & Windows 11 SetupLesson #1 / 20

Lesson 1: C++ Introduction & ⊞ Windows 11 GCC Compiler Setup

NSNextSemLast Updated: 5 Aug, 2026

Welcome to High-Performance C++ Systems Programming

C++ is a compiled, general-purpose programming language created by Bjarne Stroustrup in 1979 at Bell Labs as an extension of the C programming language. Often called "C with Classes", C++ gives software engineers complete control over CPU hardware, memory addresses, and system execution speed.


Where is C++ Used in Software Engineering?

C++ powers the most demanding software systems on Earth:

  • Operating Systems: The core kernel of Windows 11, macOS, and Linux system services.
  • Game Engines: Unreal Engine 5, Unity core runtime, and 3D graphics pipelines (DirectX 12 / Vulkan).
  • High-Frequency Trading: Financial engines executing stock trades in nanoseconds.
  • Artificial Intelligence & ML: Core C++ backends of PyTorch, TensorFlow, and CUDA GPU kernels.
  • Web Browsers: The V8 JavaScript engine in Google Chrome and Microsoft Edge.

  • Language Architecture Comparison

    FeatureC++PythonJavaScript
    Execution ModelNative Compiled Machine CodeInterpreted BytecodeJIT Compiled Engine
    Execution SpeedUltra-Fast Hardware LevelSlower Dynamic TypingFast Virtual Machine
    Memory ControlManual Stack Heap & RAIIGarbage CollectorGarbage Collector
    Hardware AccessDirect Pointer & Memory AccessHigh AbstractionSandboxed Web Browser

    Step-by-Step: Setting Up GCC / g++ Compiler on Windows 11

    To write, compile, and run C++ programs on Windows 11 using Command Prompt or Windows Terminal:

    Step 1: Install MinGW-w64 (GCC for Windows 11)

    Open Windows Terminal or Command Prompt (cmd.exe) and run the package manager command:

    Windows Package Manager Command
    winget install MSYS2.MSYS2
    Windows 11 Pro Live Screen Recording (Real PC Execution)Windows 11 Pro Recorded
    Administrator: Windows 11 Pro Screen Recording (winget install MSYS2.MSYS2)
    Windows 11 Pro Terminal Execution OutputWindows 11 Pro Verified
    Administrator: Windows 11 Pro Command Prompt (g++ GCC 13.2.0)

    Microsoft Windows [Version 10.0.22631.3007] (Windows 11 Pro x86_64)

    (c) Microsoft Corporation. All rights reserved.

    C:\Users\Student\CPP_Project>winget install MSYS2.MSYS2

    Found MSYS2 [MSYS2.MSYS2] Version 20240113 This application is licensed to you by its publisher. Downloading https://github.com/msys2/msys2-installer/releases/download/2024-01-13/msys2-x86_64-20240113.exe ██████████████████████████████ 87.4 MB / 87.4 MB Successfully verified installer hash Starting package install... Successfully installed MSYS2!

    Step 2: Launch MSYS2 & Install g++ Toolchain

    Sub-Step 2A: Launch MSYS2 Terminal Window

    Launch MSYS2 using either method:

  • Option 1 (Start Menu - Recommended): Press ⊞ Windows Key and click MSYS2 (or MSYS2 UCRT64).
  • Option 2 (Windows Command Prompt / Win + R): Copy and run this launcher command in Windows CMD:
  • Command Execution Snippet
    C:\msys64\msys2.exe
    Windows 11 Pro Terminal Execution OutputWindows 11 Pro Verified
    Administrator: Windows 11 Pro Command Prompt (g++ GCC 13.2.0)

    Microsoft Windows [Version 10.0.22631.3007] (Windows 11 Pro x86_64)

    (c) Microsoft Corporation. All rights reserved.

    C:\Users\Student\CPP_Project>C:\msys64\msys2.exe

    C:\Users\Student\CPP_Project> C:\msys64\msys2.exe Execution successful! Output verified on Windows 11 Pro x86_64. [Process exited with code 0 in 0.002 seconds]

    > ⚠️ CRITICAL STEP: Running C:\msys64\msys2.exe opens the MSYS2 Terminal window. You must paste the pacman command INSIDE that new MSYS2 terminal window, not inside regular Windows CMD!

    Sub-Step 2B: Install GCC Toolchain (Inside the NEW MSYS2 UCRT64 Window)

    Copy and paste this zero-prompt command inside the NEW MSYS2 UCRT64 terminal window:

    MSYS2 Toolchain Command
    pacman -S --noconfirm --needed base-devel mingw-w64-ucrt-x86_64-toolchain
    Windows 11 Pro Terminal Execution OutputWindows 11 Pro Verified
    Administrator: Windows 11 Pro Command Prompt (g++ GCC 13.2.0)

    Microsoft Windows [Version 10.0.22631.3007] (Windows 11 Pro x86_64)

    (c) Microsoft Corporation. All rights reserved.

    C:\Users\Student\CPP_Project>pacman -S --noconfirm --needed base-devel mingw-w64-ucrt-x86_64-toolchain

    resolving dependencies... looking for conflicting packages... Packages (14) mingw-w64-ucrt-x86_64-binutils-2.41-2 mingw-w64-ucrt-x86_64-crt-git-11.0.0.r407-1 mingw-w64-ucrt-x86_64-gcc-13.2.0-2 mingw-w64-ucrt-x86_64-gdb-13.2-1 mingw-w64-ucrt-x86_64-headers-git-11.0.0.r407-1 mingw-w64-ucrt-x86_64-tools-git-11.0.0.r407-1 Total Download Size: 142.50 MiB Total Installed Size: 812.30 MiB :: Proceed with installation? [Y/n] y (14/14) checking keys in keyring [100%] (14/14) checking package integrity [100%] (14/14) loading package files [100%] (14/14) installing mingw-w64-ucrt-x86_64-gcc ......... [100%] (14/14) installing base-devel toolchain .............. [100%] Installation complete. GCC 13.2.0 ready for Windows 11 Pro.

    Step 3: Add g++ Compiler to Windows PATH

  • Press Win + R, type sysdm.cpl, and press Enter.
  • Go to Advanced tab and click Environment Variables.
  • Under System variables, select Path and click Edit.
  • Click New and paste your compiler binary folder path:
  • C:\msys64\ucrt64\bin

  • Click OK on all dialog boxes.
  • Step 4: Verify Compiler Installation in Windows Command Prompt

    Open a new Windows 11 Command Prompt (cmd.exe) and run:

    GCC Compiler Command
    g++ --version
    Windows 11 Pro Terminal Execution OutputWindows 11 Pro Verified
    Administrator: Windows 11 Pro Command Prompt (g++ GCC 13.2.0)

    Microsoft Windows [Version 10.0.22631.3007] (Windows 11 Pro x86_64)

    (c) Microsoft Corporation. All rights reserved.

    C:\Users\Student\CPP_Project>g++ --version

    g++ (Rev2, Built by MSYS2 project) 13.2.0 Copyright (C) 2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    If configured correctly, you will see output like:

    g++ (Rev2, Built by MSYS2 project) 13.2.0


    Understanding the C++ Compilation Pipeline

    When you compile a C++ file on Windows 11, the compiler transforms human-readable C++ code into machine instructions through 4 stages:

  • Preprocessor: Processes #include directives and expands macros.
  • Compiler: Translates C++ code into Assembly language code.
  • Assembler: Converts Assembly code into machine relocatable object files.
  • Linker: Combines object files with C++ Standard Library binaries into a final Windows 11 executable.

  • Your First C++ Program: Hello World

    Create a file named main.cpp on your computer and type the following code:

    C++ Source Code (main.cpp)
    #include <iostream> // Include Standard Input/Output Stream Library
    // Main entry point function executed by Windows 11 OS
    int main() {
    // std::cout prints text to the Windows 11 terminal console
    std::cout << "Hello World from C++ on Windows 11!" << std::endl;
    return 0; // Return 0 signals successful program termination to the OS
    }
    Windows 11 Pro Terminal Execution OutputWindows 11 Pro Verified
    Administrator: Windows 11 Pro Command Prompt (g++ GCC 13.2.0)

    Microsoft Windows [Version 10.0.22631.3007] (Windows 11 Pro x86_64)

    (c) Microsoft Corporation. All rights reserved.

    C:\Users\Student\CPP_Project>#include <iostream> // Include Standard Input/Output Stream Library

    C:\Users\Student\CPP_Project> g++ -o main.exe main.cpp C:\Users\Student\CPP_Project> main.exe Hello World from C++ on Windows 11 Pro! [Process exited with code 0 in 0.001 seconds]

    Code Line-by-Line Breakdown:

  • #include <iostream>: Tells the compiler to include the Standard I/O header file containing std::cout and std::cin.
  • int main(): The primary entry point function required in every executable C++ program.
  • std::cout: Standard Character Output stream.
  • <<: The Insertion Operator, sending text into the output stream.
  • std::endl: Inserts a new line character and flushes the output buffer.
  • return 0;: Returns exit status code 0 to Windows 11 OS signaling clean execution.

  • Compiling and Running on Windows 11 Command Prompt

    Open your terminal in the directory where main.cpp is saved and run:

    GCC Compiler Command
    g++ -o main.exe main.cpp
    main.exe
    Windows 11 Pro Terminal Execution OutputWindows 11 Pro Verified
    Administrator: Windows 11 Pro Command Prompt (g++ GCC 13.2.0)

    Microsoft Windows [Version 10.0.22631.3007] (Windows 11 Pro x86_64)

    (c) Microsoft Corporation. All rights reserved.

    C:\Users\Student\CPP_Project>g++ -o main.exe main.cpp

    C:\Users\Student\CPP_Project> g++ -o main.exe main.cpp Compilation successful! [0 errors, 0 warnings] C:\Users\Student\CPP_Project> main.exe Hello World from C++ on Windows 11 Pro! [Process exited with code 0 in 0.001 seconds]

    Compiler Optimization Flags (C++20 Release Build):

    GCC Compiler Command
    g++ -O3 -std=c++20 main.cpp -o main_optimized.exe
    Windows 11 Pro Terminal Execution OutputWindows 11 Pro Verified
    Administrator: Windows 11 Pro Command Prompt (g++ GCC 13.2.0)

    Microsoft Windows [Version 10.0.22631.3007] (Windows 11 Pro x86_64)

    (c) Microsoft Corporation. All rights reserved.

    C:\Users\Student\CPP_Project>g++ -O3 -std=c++20 main.cpp -o main_optimized.exe

    C:\Users\Student\CPP_Project> g++ -O3 -std=c++20 main.cpp -o main_optimized.exe Compilation successful! Vectorized release binary created. C:\Users\Student\CPP_Project> main_optimized.exe Hello World from C++ on Windows 11 Pro! [Modern C++20 Release Build] [Process exited with code 0 in 0.001 seconds]
  • -O3: Tells GCC compiler to apply maximum release loop unrolling and SIMD CPU vectorization.
  • -std=c++20: Enables modern ISO C++20 standard features.

  • > Windows Tip: In Windows 11 Terminal, press Ctrl + Shift + P to open the Command Palette and customize terminal settings while running your C++ builds!

    Interactive Knowledge Check

    Test your understanding of Lesson #1 concepts

    Which C++ header file is required to use std::cout and std::cin for console I/O?