Vous souhaitez commencer le développement en C++ mais vous ne savez pas par où commencer sur Linux (Ubuntu) ? Cet article vous présente la configuration pratique pour le développement en C++ dans un environnement Ubuntu. En particulier, nous vous aiderons à vous familiariser avec un environnement de développement capable de construire, exécuter et déboguer en utilisant VSCode.

Bien qu'il soit courant d'utiliser Visual Studio sur Windows, un paramétrage alternatif est nécessaire sur Linux.
Ce document présente comment configurer un environnement de développement pour le C++ sur Ubuntu et comment configurer l'automatisation de la construction et le débogage dans VSCode.
Il est organisé par étapes pour que même les débutants en C++ puissent facilement suivre.

Linux penguin interacting with C++ logo

1. Installation des paquets essentiels

sudo apt update
sudo apt install build-essential gdb

Le paquet build-essential comprend :

  • g++ : compilateur C++
  • gcc : compilateur C
  • make : outil d'automatisation de construction
  • et plus encore, comme dpkg-dev

2. Installation de VSCode (version Snap)

sudo snap install code --classic

Vous pouvez également l’installer directement sur https://code.visualstudio.com


3. Installation des extensions VSCode

  • C/C++ (par Microsoft)
  • (optionnel) Code Runner : pour l'exécution rapide du code

4. Création du répertoire projet et préparation du fichier exemple

mkdir ~/cpp_projects/helloworld
cd ~/cpp_projects/helloworld
code .

Création du fichier exemple main.cpp :

#include <iostream>

int main() {
    std::cout << "Hello, C++!" << std::endl;
    return 0;
}

5. Configuration de .vscode/tasks.json (automatisation de la construction)

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build C++ file",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "main.cpp",
                "-o",
                "main"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": ["$gcc"],
            "detail": "Compiler main.cpp en main"
        }
    ]
}

Vous pouvez construire avec Ctrl + Shift + B


6. Configuration de .vscode/launch.json (débogage)

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Lancer",
            "type": "cppdbg",
            "request": "lancer",
            "program": "${workspaceFolder}/main",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "preLaunchTask": "build C++ file",
            "setupCommands": [
                {
                    "description": "Activer l'impression joli pour gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "Définir le goût de désassemblage sur Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

Vous pouvez lancer le débogage avec F5. Cela compile automatiquement et entre en mode débogage.


7. Récapitulatif de la compilation et de l'exécution

Action Raccourci
Construire (Compiler) Ctrl + Shift + B
Exécuter et déboguer F5
Exécuter dans le terminal ./main (exécution manuelle)

8. Conseils supplémentaires

  • La commande g++ -g main.cpp -o main compile avec des informations de débogage incluses.
  • Si vous ajoutez d'autres fichiers .cpp, vous devez modifier le nom de fichier dans args.
  • Si vous avez plusieurs fichiers, vous pouvez étendre avec Makefile ou CMake.

Références

Note de l'auteur

Ce environnement peut être facilement reproduit sur n'importe quel serveur personnel, Raspberry Pi, VM GCP ou autre système basé sur Linux. En l’intégrant à Python ou en le reliant à un module IA C++, cette structure constitue une base très puissante.