web-dev-qa-db-fra.com

Compilation C ++ 11 dans Visual Studio Code

J'utilise Visual Studio Code pour compiler des programmes C++ et cela fonctionne pour la plupart des programmes C++ car il le compile en utilisant g++ commande. Cependant, j'ai du mal à compiler c++11 programmes l'utilisant.

Lorsque j'essaie de compiler des programmes C++ 11, la commande du compilateur g++ essaie de le compiler en utilisant la norme C++ 98 par défaut, ce qui entraîne des erreurs.

Je suis conscient que l'utilisation de g++ -std=c++11, nous pouvons compiler des programmes C++ 11 en utilisant g++ et ça marche bien quand je l'utilise dans mon cmd comme:

g ++ -std = c ++ 11 some_program.cpp

Je souhaite pouvoir modifier certains paramètres dans Visual Studio Code et modifier la commande du compilateur de g++ à g++ -std=c++11 pour que je puisse compiler des programmes en appuyant simplement sur run code bouton. Cependant, je ne suis pas en mesure d'en trouver un. S'il vous plaît, aidez-moi s'il existe d'autres moyens de compiler mon programme.

Actuellement, je reçois des erreurs comme:

some_program.cpp: Dans la fonction 'int main ()':

some_program.cpp: 12: 33: erreur: en C++ 98 'A' doit être initialisé par le constructeur, pas par '{...}' vector A = {11,2,3,14};

Les extraits sont corrects et ont été testés avec des compilateurs en ligne utilisant C++ 11. Ici, il essaie de compiler en utilisant C++98 comme indiqué dans l'erreur.

4
Biswajit Roy

Accédez à Settings> User Settings Ici, recherchez Run Code Configuration:

Dans ce menu, recherchez: "code-runner.executorMap"

Modifiez ce paramètre en l'ajoutant au paramètre utilisateur comme ci-dessous pour la prise en charge de C++ 11:

"code-runner.executorMap":{
    "cpp": "cd $dir && g++ -std=c++11 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
},

OR

Modifiez ce paramètre en l'ajoutant au paramètre utilisateur comme ci-dessous pour la prise en charge de C++ 17:

"code-runner.executorMap":{
    "cpp": "cd $dir && g++ -std=c++17 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
},

J'espère que cela t'aides !

6
Imacoder