Skillversitas

C++ Development Environment

Before you start writing C++ programs, you need to prepare the right development environment. A development environment consists of a compiler (to turn C++ code into a runnable program), a text editor or IDE (for writing code), and build tools (to manage the compilation process). In this guide, we will cover installation and configuration for various operating systems.


C++ Compiler: GCC/G++

GCC (GNU Compiler Collection) is a free, open-source compiler suite that supports many programming languages, including C and C++. For C++, GCC provides a compiler named g++.

Installation on Windows

There are several ways to get g++ on Windows:

MSYS2 provides a Unix-like environment on Windows with easily manageable packages.

  1. Download MSYS2 from https://www.msys2.org
  2. Run the installer and follow the installation steps
  3. Open MSYS2 UCRT64 from the Start Menu
  4. Run the following commands to update the system and install g++:
# Update the package database
pacman -Syu

# Install GCC/G++ and the full toolchain
pacman -S mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-make
  1. Add the path to the Windows environment variables:
  2. Open System Properties → Environment Variables
  3. In the Path section, add: C:\msys64\ucrt64\bin
  4. Verify the installation in Command Prompt or PowerShell:
g++ --version

Using MinGW-w64

  1. Download from https://www.mingw-w64.org
  2. Run the installer and select the x86_64 architecture
  3. Add the MinGW path to the environment variables
  4. Verify with g++ --version

Using TDM-GCC

  1. Download from https://jmeubank.github.io/tdm-gcc
  2. Run the installer and follow the installation process
  3. TDM-GCC automatically adds the path to the environment variables

Installation on macOS

macOS provides the C/C++ toolchain through Xcode Command Line Tools.

  1. Open Terminal (Applications → Utilities → Terminal)
  2. Run the following command:
xcode-select --install
  1. A confirmation dialog will appear — click Install
  2. Wait for the installation to finish (requires an internet connection)
  3. Verify the installation:
g++ --version
clang++ --version

Note: On macOS, g++ is actually a symlink to Clang++ (the LLVM compiler), not real GCC. However, its usage is very similar and compatible for most projects.

Installation on Linux

Most Linux distributions already have GCC or can install it easily.

Ubuntu/Debian

# Update the package list
sudo apt update

# Install build-essential (includes g++, make, and libraries)
sudo apt install build-essential

# Verify
g++ --version

Fedora/RHEL/CentOS

# Install the GCC C++ compiler
sudo dnf install gcc-c++

# Verify
g++ --version

Arch Linux

# Install GCC
sudo pacman -S gcc

# Verify
g++ --version

openSUSE

sudo zypper install gcc-c++
g++ --version

IDEs and Text Editors

VS Code is a free code editor from Microsoft that is very popular and has a rich extension ecosystem.

Setup Steps:

  1. Download and install VS Code from https://code.visualstudio.com
  2. Open VS Code and install the following extensions:
  3. C/C++ (by Microsoft) — IntelliSense, debugging, and code browsing
  4. C/C++ Extension Pack — A complete extension pack for C++
  5. Code Runner — For running code directly from the editor

  6. Create a new .cpp file and start coding

  7. To run the program, open VS Code's built-in terminal (`Ctrl + ``) and use:
g++ -o program program.cpp
./program

Advantages of VS Code:
- Free and open source
- Lightweight and fast
- A huge number of extensions
- Built-in debugger integration
- Smart IntelliSense
- Native Git support

CLion (by JetBrains)

CLion is a dedicated C/C++ IDE from JetBrains that is very powerful.

Strengths:
- Highly advanced code analysis
- Automatic refactoring
- Integrated debugger
- Built-in CMake integration
- Fast code navigation

Weaknesses:
- Paid (free for students and open source)
- Requires fairly high computer specifications

Code::Blocks

Code::Blocks is a free, open-source IDE designed specifically for C/C++.

Strengths:
- Free and open source
- Lightweight and easy to use
- Available on Windows, macOS, and Linux
- Plugins available to extend its features

Setup:
1. Download from http://www.codeblocks.org
2. Choose the installer with MinGW if you do not have a compiler yet
3. Install and start coding

Other Editors

IDE/Editor Strengths Price
Visual Studio Full-featured IDE from Microsoft Free (Community)
Sublime Text Fast and lightweight $99 (can be free)
Vim/Neovim Extremely fast, customizable Free
Emacs Highly customizable Free
Qt Creator Integrated with the Qt framework Free

Compiling from the Terminal

Compilation Basics with g++

# Simple compilation — produces an executable named a.out
g++ program.cpp

# Compile with a specific executable name
g++ -o program program.cpp

# Run the program
./program          # Linux/macOS
program.exe        # Windows

Important Compilation Flags

# Enable all warnings
g++ -Wall -o program program.cpp

# Enable a specific C++ standard
g++ -std=c++17 -o program program.cpp
g++ -std=c++20 -o program program.cpp

# Enable optimization
g++ -O2 -o program program.cpp

# Enable debug symbols
g++ -g -o program program.cpp

# Combine multiple flags
g++ -Wall -Wextra -std=c++17 -O2 -g -o program program.cpp

Explaining the Flags

Flag Function
-o name Sets the output file name
-Wall Enables all common warnings
-Wextra Enables additional warnings
-std=c++XX Sets the C++ standard to use
-O1, -O2, -O3 Optimization levels
-g Adds debug symbols
-c Compile only, without linking
-E Preprocessing only
-S Produces an assembly file

Multi-File Compilation

For projects with multiple files:

# Compile multiple files at once
g++ -std=c++17 -Wall -o program main.cpp utils.cpp math.cpp

# Compile files one by one (utility)
g++ -std=c++17 -c main.cpp       # Produces main.o
g++ -std=c++17 -c utils.cpp      # Produces utils.o
g++ -std=c++17 -c math.cpp       # Produces math.o

# Link all object files
g++ -o program main.o utils.o math.o

CMake Basics

CMake is a very popular build system generator for C++ projects. CMake does not compile code directly; instead, it generates build files for various platforms (Makefiles, Ninja, Visual Studio, Xcode).

Why CMake?

  • Cross-platform — A single CMakeLists.txt file can be used on many operating systems
  • Dependency management — Makes managing external libraries easier
  • Scalability — Suitable for projects of any size, small to large
  • De facto standard — Used by almost all modern C++ projects

Installing CMake

# Ubuntu/Debian
sudo apt install cmake

# macOS (with Homebrew)
brew install cmake

# Windows
# Download from https://cmake.org/download/
# or install via MSYS2: pacman -S mingw-w64-ucrt-x86_64-cmake

A Simple CMakeLists.txt Example

cmake_minimum_required(VERSION 3.10)
project(MyProject VERSION 1.0 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

add_executable(main main.cpp)

Using CMake

# Create the build directory
mkdir build
cd build

# Generate the build files
cmake ..

# Compile
cmake --build .

# Run the program
./main            # Linux/macOS
main.exe          # Windows

A Good C++ Project Structure

Here is a recommended directory structure for a C++ project:

my_project/
├── CMakeLists.txt
├── README.md
├── include/
│   └── my_project/
│       └── header.h
├── src/
│   ├── main.cpp
│   └── implementation.cpp
├── tests/
│   └── test_main.cpp
├── lib/
│   └── external_libraries
└── build/
    └── (compilation files)

This structure separates header files (include/), source files (src/), test files (tests/), and build files (build/). This separation keeps the code better organized and easier to manage.


Verifying Your Environment

Once everything is installed, verify your environment by writing a simple program:

#include <iostream>

int main() {
    std::cout << "C++ environment configured successfully!" << std::endl;
    return 0;
}

Save it as test.cpp, then compile and run it:

g++ -std=c++17 -o test test.cpp
./test

If the message "C++ environment configured successfully!" appears, you are ready to start learning C++.


Conclusion

Setting up a C++ development environment is the important first step before you start coding. Make sure you have a compiler (GCC/Clang/MSVC), a text editor or IDE (VS Code is recommended), and familiarity with the basic compilation commands from the terminal. For larger projects, learn CMake as a build system generator tool. With the environment ready, we can start writing our first C++ program in the next chapter.