По умолчанию задача компилирует только открытый в данный момент файл, поэтому вам нужно изменить предварительную задачу для компиляции всего, что вам нужно. Для этого можно создать пользовательское задание, например:
{
"tasks": [
{
"type": "shell",
"label": "clang build active file",
"command": "/usr/bin/clang",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "/usr/bin"
}
},
{
"type": "shell",
"label": "clang build custom",
"command": "/usr/bin/clang",
"args": [
"-g",
"${fileDirname}/main.c",
"${fileDirname}/support.c",
"-o",
"${fileDirname}/main"
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build"
}
],
"version": "2.0.0"
}
, а затем обновить запуск. json, чтобы использовать новое задание:
"configurations": [
{
"name": "clang build and debug custom project",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"preLaunchTask": "clang build custom"
}
]