VS Code will not build c++ programs with multiple .ccp source files VS Code will not build c++ programs with multiple .ccp source files linux linux

VS Code will not build c++ programs with multiple .ccp source files


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"

it will work if your sources are in separated folder


feeling lazy,

This is tasks.json of vscode for linux distros, to compile multiple cpp files.

{"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        }    }]

}


This is a Windows answer for the same problem:

I was struggling with this as well until I found the following answer at https://code.visualstudio.com/docs/cpp/config-mingw :

You can modify your tasks.json to build multiple C++ files by using an argument like "${workspaceFolder}\\*.cpp" instead of ${file}. This will build all .cpp files in >your current folder. You can also modify the output filename by replacing "${fileDirname}\\${fileBasenameNoExtension}.exe" with a hard-coded filename (for >example "${workspaceFolder}\\myProgram.exe").

Note that the F in workspaceFolder is capitalized.

As an example, in my tasks.json file in my project, the text in between the brackets under "args" originally appeared as follows:

"-g",  "${file}",  "-o",  "${fileDirname}\\${fileBasenameNoExtension}.exe"

This gave me reference errors because it was only compiling one and not both of my files.

However, I was able to get the program to work after changing that text to the following:

"-g","${workspaceFolder}\\*.cpp","-o","${fileDirname}\\${fileBasenameNoExtension}.exe"