web-dev-qa-db-fra.com

Comment puis-je compiler des fichiers C ++ à l'aide de Visual Studio Code

Quick run-down : Je suis complètement nouveau dans Ubuntu, mais pas nouveau dans C++: I 'ai déjà codé sur une machine Windows auparavant, mais je suis passé à Ubuntu

Maintenant, j'ai installé le code VS sur Ubuntu ainsi que l'extension C++, mais lorsque j'essaie même d'exécuter un helloworld.cpp et de déboguer mon éditeur, des signes de gangs apparaissent:

Error Screen

Quelqu'un peut-il m'aider à résoudre ce problème?

4

J'ai eu ce problème aussi quand je suis passé à Ubuntu (je suis un peu nouveau aussi, alors je vais essayer d'être très clair, je comprends que c'est plus compliqué que Windows). Je ne connais pas votre expérience, mais tout d’abord, ce n’est pas un compilateur Windows (comme devc, borland, etc.) dans lequel vos valeurs seront affichées sur une console externe (sauf si vous êtes en train de déboguer). Voici donc les étapes à suivre pour faire fonctionner un programme:

  1. Vous devez installer g ++ Sudo apt-get install g++ et afficher le compilateur où se trouve la route include dans un fichier nommé c_cpp_properties.json dans la section linux, comme ceci:

    "name": "Linux",
        "includePath": [
            "/usr/include/c++/7",
            "/usr/include/x86_64-linux-gnu/c++/7",
            "/usr/include/c++/7/backward",
            "/usr/lib/gcc/x86_64-linux-gnu/7/include",
            "/usr/local/include",
            "/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed",
            "/usr/include/x86_64-linux-gnu",
            "/usr/include",
            "/usr/bin/g++",
            "${workspaceRoot}"
    
  2. Commencez par sélectionner le dossier dans lequel vous allez travailler (ce sera votre espace de travail).

  3. Vous devez créer votre programme avant de le mettre au travail. Vous devez donc créer une "tâche" pour le faire. Vous devez donc accéder à la palette de commandes (Ctrl+P) et type:

    Tasks: Configure Default Build Tasks
    

    Cela va créer un task.json et vous devrez choisir une option (MsBuild, dotNet, Other, etc.). Donc, vous allez sélectionner "Autre" et vous allez changer certaines valeurs comme ceci:

    {
        // See https://go.Microsoft.com/fwlink/?LinkId=733558
        // for the documentation about the tasks.json format
        "version": "2.0.0",
        "tasks": [
            {
                "label": "echo",
                "type": "Shell",
                "command": "g++",
                "args": [
                    "-g","Erlang_B_Correcto.cpp"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                }
            }
        ]
    }
    

    Maintenant, appuyez sur Ctrl+Shift+B

  4. Maintenant, si votre programme n'a pas d'erreur, va sortir quelque chose comme ça dans le terminal intégré

    Exécution de la tâche dans le dossier YourFolder: g ++ -g YourProgram.cpp

    et va créer un fichier nommé a.out dans votre dossier d’espace de travail, je vous recommande de télécharger une extension nommée CodeRunner: elle ajoute un bouton de lecture dans le coin supérieur droit sur lequel vous cliquez uniquement et exécute le programme sans débogage. Le truc, c'est qu'il ne peut que sortir. Je veux dire: si vous attendez de l'utilisateur qu'il entre des valeurs, vous ne pouvez pas (comme je l'ai déjà dit, je suis aussi nouveau, donc je ne suis pas tout à fait sûr que vous ne pouvez pas le faire).

  5. Enfin, si vous voulez déboguer, vous devez configurer celui-ci lauch.json que vous avez chargé dans les images vers quelque chose comme ceci:

    {
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.Microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
    
        {
            "name": "(gdb) Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "/home/carlosrpz26/Documents/C++ Programas/a.out",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
      ]
    }
    

https://imgur.com/ioMdDzZ

Astuce: Je recommanderais un thème plus sombre!

3
Carlos Pérez

Si vous souhaitez créer votre application à partir de VS Code, vous devez générer un fichier tasks.json:

tasks.json est utilisé pour exécuter tout ce que vous voulez, que ce soit du formateur de code source, des bundlers ou un compilateur SASS. Pour utiliser une configuration de tasks.json, sélectionnez Exécuter la tâche dans la liste de commandes.

Ouvrez la palette de commandes (Ctrl + Maj + P).

  1. Sélectionnez la commande Tâches: Configurer les tâches ..., cliquez sur Créer un fichier tasks.json à partir de modèles et une liste des modèles de runner de tâches apparaît.

  2. Sélectionnez Autres pour créer une tâche qui exécute une commande externe.

  3. Remplacez la commande par l'expression de ligne de commande utilisée pour créer votre application (par exemple, g ++).

  4. Ajoutez tous les arguments requis (par exemple -g pour générer le débogage).

  5. L’extension Microsoft C/Cpp est nécessaire et votre propre compilateur c ++ est également requis pour exécuter le code lui-même. J'ai utilisé g ++ et il donne le fichier .out après compilation donc j'ai ajouté .out dans l'extrait suivant.

    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "debug",
                "type": "Shell",
                "command": "",
                "args": [
                    "g++",
                    "-g",
                    "${relativeFile}",
                    "-o",
                    "a.out"
                ],
                "problemMatcher": [
                    "$gcc"
                ]
            },
            {
                "label": "Compile and run",
                "type": "Shell",
                "command": "",
                "args": [
                    "g++",
                    "-g",
                    "${relativeFile}",
                    "-o",
                    "${fileBasenameNoExtension}.out",
                    "&&",
                    "clear",
                    "&&",
                    "./${fileBasenameNoExtension}.out"
                ],
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "problemMatcher": {
                    "owner": "cpp",
                    "fileLocation": [
                        "relative",
                        "${workspaceRoot}"
                    ],
                    "pattern": {
                        "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
                        "file": 1,
                        "line": 2,
                        "column": 3,
                        "severity": 4,
                        "message": 5
                    }
                }
            }
        ]
    }
    
0
AKASH GUDADHE