Logs
Consultez les logs.
OK
Liste des données
Consultez la liste des données.
OK
Loading...
Formulaire
Saisissez vos données.
Enregistrer
Annuler

Apprendre VSCode

Vues
152

Introduction


C++ est un langage de programmation orientée objet. Il offre la possibilité d'avoir le contrôle total sur la gestion de la mémoire.


### Travailler avec VSCode


VSCode est un environnement de développement intégré prenant en charge le développement de projet C++. Quelques configurations sont le plus souvent nécessaires pour mener à bien le développement d'un projet C++ sous VSCode.


Configurer un développement à distance sous VSCode


VSCode est un environnement de développement intégré prenant en charge le développement à distance avec l'extension Remote SSH. VSCode utilise Remote SSH pour établir une connexion SSH avec une machine afin de développer un projet à distance.

// VSCode (Installer l'extension Remote SSH)
...
Extensions > Search > Remote SSH > Install
...

// VSCode (Démarrer une connexion SSH)
...
# Démarrer la connexion SSH
Open a Remote Window > Connect to Host > Add New SSH Host
SSH Connection Command > ssh [username]@[hostname]
SSH Configuration File > C:\Users\tiaka\.ssh\config
Connect > Linux > Continue
Password > [mot-de-passe]
...

// VSCode (Ouvrir une connexion SSH)
...
# Démarrer la connexion SSH
Open a Remote Window > Connect to Host > [nom-server-distant] > Linux
Password > [mot-de-passe]
...




Activer X11 lors de la connexion SSH sous VSCode


X11 (X Windows System) est un protocole de gestion de fenêtrage. Il permet de gérer à partir d'une machine locale, l'écran, la souris et le clavier d'une application graphique à distante.

// VSCode (Démarrer une connexion SSH avec X11)
...
# Démarrer la connexion SSH
Open a Remote Window > Connect to Host > Add New SSH Host
SSH Connection Command > ssh [username]@[hostname] -X11
SSH Configuration File > C:\Users\tiaka\.ssh\config
Connect > Linux > Continue
Password > [mot-de-passe]
...

// VSCode (Activer X11 lors de la connexion SSH)
...
# Ouvrir le fichier de configuration SSH
Barre de recherche > Show and Run Commands 
> CMake: Connect to Host
Configure SSH Hosts
SSH Configuration file > C:\Users\[username]\.ssh\config
...
# Activer X11 lors de la connexion SSH
Host [hostname]
  HostName [hostname]
  User [username]
  ForwardX11 yes
  ForwardX11Trusted yes
...

image.png


Créer un projet C++ CMake sous VSCode


VSCode est un environnement de développement intégré prenant en charge l'outil de construction CMake. CMake est un outil de construction prenant en charge la construction de projet C++.

// VScode (Installer l'extension C/C++)
...
Extensions > Search > C/C++ > Install
...

// VScode (Installer les extensions CMake)
...
Extensions > Search > CMake > Install
Extensions > Search > CMake Tools > Install
...

// VScode (Créer un projet C++ avec CMake)
...
Barre de recherche > Show and Run Commands 
> CMake: Quick Start
Name : rdvcpp
C++ : Create a C++ project
Executable : Create an executable
OK > OK
...

// main.cpp (Editer le programme principal)
...
#include <iostream>

int main(int argc, char **argv)
{
    std::cout << "[rdvcpp] : Demarrage du projet C++...\n";
    return 0;
}
...

// CMakeLists.txt (Editer le fichier de construction CMake)
...
cmake_minimum_required(VERSION 3.10.0)
project(rdvcpp VERSION 0.1.0 LANGUAGES C CXX)

add_executable(rdvcpp main.cpp)
...

// VSCode (Construire le projet)
...
Build the selected target
...

image.png

// VSCode (Exécuter le projet)
...
Launch the selected target in the terminal window: [nom-projet]
...

image.png

image.png


Déboguer un projet C++ CMake sous VSCode


VSCode est un environnement de développement intégré prenant en charge le débogage de projet C++. Le débogage permet de suivre l'exécution d'un projet pas à pas afin de déceler d'éventuels disfonctionnements dans le code dans le but d'apporter une correction beaucoup plus adaptée. 

// VScode (Placer un point d'arrêt)
...
Cliquer sur le bord gauche d'une ligne de code
...

image.png

// VSCode (Déboguer le projet)
...
Launch the debugger for the selected target: [nom-projet]
...

image.png

image.png

image.png

image.png

image.png


Ouvrir le fichier des propriétés C/C++ JSON sous VSCode


Le fichier des propriétés C/C++ est un gestionnaire des configurations C/C++. Il permet de configurer les propriétés C/C++ d'un projet.

// VScode (Ouvrir le fichier des propriétés C/C++)
...
Barre de recherche > Show and Run Commands 
> C/C++: Edit Configurations (JSON)
...
.vscode/c_cpp_properties.json
...

// .vscode/c_cpp_properties.json (Editer le fichier des propriétés C/C++)
...
{
  "configurations": [
    {
      "name": "Win32",
      "includePath": ["${workspaceFolder}/**"],
      "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
      "windowsSdkVersion": "10.0.22621.0",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "windows-msvc-x64",
      "configurationProvider": "ms-vscode.cmake-tools"
    }
  ],
  "version": 4
}
...


Définir le chemin du compilateur C/C++ MSVC sous VSCode


Le compilateur C/C++ est un est un traducteur de code C/C++ en langage machine. VSCode permet de configurer plusieurs compilateurs C/C++ pour un même projet. Cela permet de basculer facilement d'un compilateur C/C++ à l'autre et de tester ainsi la même base de code pour différents types de compilateur. CL est le compilateur C/C++ fournit par l'éditeur Microsoft Visual Studio.

// VScode (Définir le chemin du compilateur C/C++)
...
# Ouvrir l'interface des propriétés C/C++
Barre de recherche > Show and Run Commands 
> C/C++: Edit Configuration (UI)
...
# Définir le chemin du compilateur
Compiler Path > C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe
...

// .vscode/c_cpp_properties.json (Editer le fichier des propriétés C/C++)
...
{
  "configurations": [
    {
      "name": "Win32",
      "includePath": ["${workspaceFolder}/**"],
      "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
      "windowsSdkVersion": "10.0.22621.0",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "windows-msvc-x64",
      "configurationProvider": "ms-vscode.cmake-tools",
      "compilerPath": "C:/Program Files/Microsoft Visual Studio/2022/Professional/VC/Tools/MSVC/14.41.34120/bin/Hostx64/x64/cl.exe"
    }
  ],
  "version": 4
}
...


Ouvrir le fichier des configurations JSON sous VSCode


Le fichier des configurations VSCode est un gestionnaire des configurations à usage général. Il permet entre autres de gérer les configurations de l'outil CMake.

// VScode (Ouvrir le fichier des configurations VSCode)
...
Barre de recherche > Show and Run Commands 
> Preferences: Open Workspace Settings (JSON)
...
.vscode/settings.json
...

// .vscode/settings.json (Editer le fichier des configurations VSCode)
...
{
}
...


Définir le répertoire des sources de CMake sous VSCode


Le répertoire des sources de CMake contient le fichier de construction racine du projet (CMakeLists.txt). 

// .vscode/settings.json (Définir le répertoire des sources de CMake)
...
{
  "cmake.sourceDirectory": "${workspaceFolder}/[chemin/source/cmake]"
}
...


Définir les arguments en ligne d'un projet C++ CMake sous VSCode


Le passage des arguments en ligne de commande est le moyen de fournir des paramètres à un exécutable à partir de la ligne de commande.

// .vscode/settings.json (Définir les arguments en ligne d'un projet C++)
...
{
  "cmake.debugConfig": {
    "args": ["un", "deux", "trois", "quatre"]
  }
}
...

// Terminal (Définir les arguments en ligne d'un projet C++)
...
rdvcpp.exe un deux trois quatre
...


Définir une variable d'environnement sous VSCode


Les variables d'environnement sont des canaux de communication. Elles servent à communiquer des informations à un programme afin de modifier dynamiquement son comportement.

// .vscode/settings.json (Définir une variable d'environnement)
...
{
  "cmake.environment": {
    "PATH": "C:/Qt/6.5.2/msvc2019_64/bin"
  },
}
...


### Travailler avec VcXsrv


VcXsrv est un gestionnaire de fenêtrage. Il utilise les outils Xming et XLaunch pour implémenter le protocole X11 (X Windows System) afin de gérer à partir d'une machine locale, l'écran, la souris et le clavier d'une application graphique à distante.

image.png


Installer VcXsrv sous Windows


L'installation de VcXsrv fournit les outils Xming et XLaunch et est supporté par Windows. 

// Google Chrome (Télécharger VcXsrv)
...
https://sourceforge.net/projects/vcxsrv/
Download
...

// Windows (Install VcXsrv)
...
# Démarrer l'installation
Double clic > [installeur]
Next
# Configurer le dossier d'installation
Destination Folder > C:\Program Files\VcXsrv
Install > Close
...


Démarrer XLaunch sous Windows


Le démarrage de XLaunch lance automatiquement l'outil Xming.

// Windows (Démarrer XLaunch)
...
# Démarrer XLaunch
Bouton Windows > Rechercher > XLaunch
# Configurer le nombre de fenêtre
Cocher > Multiple Windows
Display number > 0
Suivant
# Configurer le démarrage
Cocher > Start no client
Suivant
# Configurer le presse-papiers
Cocher > Clipboard
Suivant
# Enregistrer la configuration
Save configuration
Emplacement > C:\Users\[username]\Documents
Nom du fichier > config.xlaunch
Enregistrer
...
Terminer
...
# Redémarrer Windows
Bouton Windows > Marche/Arrêt > Redémarrer
...

// Windows (Démarrer une configuration XLaunch)
...
# Démarrer la configuration
C:\Users\[username]\Documents\config.xlaunch
...

// Terminal-Windows (Configurer le numéro de display)
...
# Configurer le numéro de display
# en créant une variable d'environnment permanente
setx DISPLAY "127.0.0.1:[numero-display].0"
...
# Le numéro de display doit être unique sur le réseau
# Cela permet d'avoir plusieurs serveur X11 sur le réseau
...
# Chaque server X11 doit créer une nouvelle configuration XLaunch
# avec un numéro de display différent
...
# Configurer le numéro de display
# en créant une variable d'environnment permanente
setx DISPLAY "127.0.0.1:0.0"
...

image.png

// Notes (Démarrer XLaunch)
...
L'outil XLaunch ayant démarré,
Il est possible de se connecter à serveur SSH en activant le transfert (X11)
Pour pouvoir exécuter une application graphique à distance.
...
# Se connecter en SSH avec X11
ssh [username]@[hostname] -XY
...
# Démarrer l'application xclock
# Pour tester le transfert X11
xclock
...

image.png

image.png