Problème lié aux entêtes sur visual studio code

TTLVL -  
 TTLVL -

Bonjour,

Je suis en train d'apprendre le C++ sur visual studio code et je n'arrive aucunement à faire fonctionner les entêtes. J'ai pourtant fait des essais en copiant le même code que les exemples de ma formation mais impossible de les faire marcher. J'ai donc essayé sur d'autres IDE, ca marche, mais je préférerais rester sur visual studio code. Est-ce que vous auriez des conseils pour les faire marcher ?

En vous remerciant d'avance, ca fait plus d'une semaine que je cherche la solution en vain :)


Windows / Chrome 107.0.0.0

A voir également:

4 réponses

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 

Boujour TTLVL,

As-tu suivi des instructions, comme celles-ci, pour installer les éléments nécessaires, y compris un compilateur sur ton système ?

https://code.visualstudio.com/docs/languages/cpp

https://code.visualstudio.com/docs/cpp/config-mingw

0
TTLVL
 

Oui tout est déjà installé, je vais vous montrer un exemple du problème, donc en gros j'ai un crée un fichier essai.cpp qui appelle une fonction qui ajoute 2 à une variable. Rien de compliqué en soit.

Donc ca c'est le code et puis lors de l'execution du programme, je recois le message d'erreur suivant :

Je vous remercie d'avance de l'aide apportée :)

0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 

Salut TTLVL,

Ton include fonctionne bien et il n'y a pas de problème avec ton entête. L'erreur n'est pas à ce stade (pas d'erreur de compilation provoquée par le préprocesseur ni le compilateur lui-même) le problème est lié au fait que tu ne compiles que essai.cpp et pas math.cpp. C'est l'éditeur de liaison ld qui rapporte l'erreur, car il ne trouve pas le code objet de la fonction annoncée comme existante dans le header inclus et que tu veux appeler dans ton main().

ld n'étant pas capable d'assembler les éléments avec succès pour créer l'exécutable, elle renvoie une erreur.

Selon ta capture, ta commande de compilation est :

g++ essai.cpp -o essai

Tu dois faire en sorte qu'elle soit :

g++ essai.cpp math.cpp -o essai

ou alors

g++ *.cpp -o essai

pour compiler tous les fichiers *.cpp que tu ajouteras dans le répertoire courant.

Au vu de tes captures, je pense que tu utilises l'extension Code Runner pour (tenter de compiler et) exécuter ton code

https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner

Je n'ai jamais utilisé cette extension. Si tu es bien dans ce cas, cette extension Code Runner n'est pas vraiment faite pour gérer des projets avec de multiples fichiers.

Tu peux bricoler sa configuration pour compiler tous les *.cpp vois :

https://stackoverflow.com/questions/59474537/code-runner-configuration-for-running-multiple-cpp-classes-in-vscode

https://github.com/formulahendry/vscode-code-runner/issues/416

Sinon, normalement, lorsque l'exécution est demandée via VSCode pour la première fois dans un projet vierge, en cliquant sur l'icône ⏵ en haut à droite, VSCode demande sur la base de quel profil de débogage ou d'exécution par défaut tu souhaites le faire. Le fonctionnement normal de VSCode est alors de créer un répertoire .vscode à la racine dans lequel est créé un fichier tasks.json auquel tu peux ensuite accéder pour spécifier les paramètres de compilation que tu souhaites pour ton projet en altérant la configuration par défaut écrite par VSCode.

tasks.json n'est pas vraiment pratique non plus pour gérer un projet complexe, et en général on utilise un vrai système de build (CMake, Make,...). Il y a des extensions VSCode pour un fonctionnement intégré.

Tu peux aussi taper ta commande de compilation dans le terminal de VSCode ou lancer ton build de cette façon sans passer par le fonctionnement des icônes, menus ou raccourcis intégrés à VSCode.

0
TTLVL
 

Salut,

Merci beaucoup pour ta réponse et ton temps.

C'est en effet de la que venait le problème, les fichiers n'étaient pas tous exécutés.

J'ai par la suite trouvé une alternative plus simple pour ceux qui auraient le même problème, vous n'avez qu'à télécharger l'extension suivante ;

https://marketplace.visualstudio.com/items?itemName=franneck94.c-cpp-runner

0