cítit se líný,
Toto je tasks.json
vscode pro linuxové distribuce ke kompilaci více souborů 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
}
}
]
}
Toto je odpověď systému Windows na stejný problém:
Také jsem s tím bojoval, dokud jsem na https://code.visualstudio.com/docs/cpp/config-mingw nenašel následující odpověď:
Pomocí argumentu jako
"${workspaceFolder}\\*.cpp"
můžete upravit svůj task.json tak, aby vytvořil více souborů C++ místo${file}
. Tím se vytvoří všechny soubory .cpp ve>vaší aktuální složce. Můžete také upravit výstupní název souboru nahrazením"${fileDirname}\\${fileBasenameNoExtension}.exe"
s pevně zakódovaným názvem souboru (například>"${workspaceFolder}\\myProgram.exe"
).
Všimněte si, že F ve složce workspaceFolder je velké.
Jako příklad v mém souboru tasks.json v mém projektu se text mezi závorkami pod „args“ původně objevil takto:
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
Tím jsem dostal referenční chyby, protože kompiloval pouze jeden a ne oba mé soubory.
Po změně textu na následující text se mi však podařilo spustit program:
"-g",
"${workspaceFolder}\\*.cpp",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
v task.json:
"label": "g++.exe build active file",
"args": [
"-g",
"${fileDirname}\\**.cpp",
//"${fileDirname}\\**.h",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
],
v launch.json:
"preLaunchTask": "g++.exe build active file"
bude to fungovat, pokud jsou vaše zdroje v samostatné složce
Pokud máte více souborů a jeden závisí na cpp
soubor pro jiný, musíte říct g++, aby ho také zkompiloval, aby ho linker našel. Nejjednodušší způsob by byl:
$ g++ Cat.cpp main.cpp -o Classes