sentirsi pigro,
Questo è tasks.json
di vscode per distribuzioni Linux, per compilare più file 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
}
}
]
}
Questa è una risposta di Windows per lo stesso problema:
Stavo lottando anche con questo finché non ho trovato la seguente risposta su https://code.visualstudio.com/docs/cpp/config-mingw :
Puoi modificare il file tasks.json per creare più file C++ utilizzando un argomento come
"${workspaceFolder}\\*.cpp"
invece di${file}
. Questo creerà tutti i file .cpp nella>tua cartella corrente. Puoi anche modificare il nome del file di output sostituendo"${fileDirname}\\${fileBasenameNoExtension}.exe"
con un nome file codificato (per>esempio"${workspaceFolder}\\myProgram.exe"
).
Nota che la F in workspaceFolder è in maiuscolo.
Ad esempio, nel mio file tasks.json nel mio progetto, il testo tra parentesi sotto "args" appariva originariamente come segue:
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
Questo mi ha dato errori di riferimento perché stava compilando solo uno e non entrambi i miei file.
Tuttavia, sono riuscito a far funzionare il programma dopo aver cambiato il testo nel seguente:
"-g",
"${workspaceFolder}\\*.cpp",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
in tasks.json:
"label": "g++.exe build active file",
"args": [
"-g",
"${fileDirname}\\**.cpp",
//"${fileDirname}\\**.h",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
],
in launch.json:
"preLaunchTask": "g++.exe build active file"
funzionerà se le tue fonti sono in una cartella separata
Se hai più file e uno dipende da un cpp
file per un altro, devi dire a g++ di compilarlo, in modo che il linker possa trovarlo. Il modo più semplice sarebbe:
$ g++ Cat.cpp main.cpp -o Classes