se sentir paresseux,
C'est tasks.json
de vscode pour les distributions Linux, pour compiler plusieurs fichiers cpp.
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-g",
"${fileDirname}/*.cpp",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
Ceci est une réponse Windows pour le même problème :
Je me débattais également avec cela jusqu'à ce que je trouve la réponse suivante sur https://code.visualstudio.com/docs/cpp/config-mingw :
Vous pouvez modifier votre tasks.json pour créer plusieurs fichiers C++ en utilisant un argument comme
"${workspaceFolder}\\*.cpp"
au lieu de${file}
. Cela construira tous les fichiers .cpp dans> votre dossier actuel. Vous pouvez également modifier le nom du fichier de sortie en remplaçant"${fileDirname}\\${fileBasenameNoExtension}.exe"
avec un nom de fichier codé en dur (par>exemple"${workspaceFolder}\\myProgram.exe"
).
Notez que le F dans workspaceFolder est en majuscule.
Par exemple, dans mon fichier tasks.json de mon projet, le texte entre les crochets sous "args" apparaissait à l'origine comme suit :
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
Cela m'a donné des erreurs de référence car il ne compilait qu'un seul de mes fichiers et non les deux.
Cependant, j'ai pu faire fonctionner le programme après avoir changé ce texte comme suit :
"-g",
"${workspaceFolder}\\*.cpp",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
dans tâches.json :
"label": "g++.exe build active file",
"args": [
"-g",
"${fileDirname}\\**.cpp",
//"${fileDirname}\\**.h",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
],
dans launch.json :
"preLaunchTask": "g++.exe build active file"
cela fonctionnera si vos sources sont dans un dossier séparé
Si vous avez plusieurs fichiers et que l'un dépend d'un cpp
file pour un autre, vous devez indiquer à g++ de le compiler également, afin que l'éditeur de liens puisse le trouver. Le moyen le plus simple serait :
$ g++ Cat.cpp main.cpp -o Classes