目录
本文主要关注Windows系统下VS Code如何更灵活的运行调试多个C++文件。对于如何配置C/C++运行环境可先参考该文章:VS Code(Windows)配置C/C++运行环境(官方文档版—高效简洁)
1、tasks.json文件
VS Code中运行C/C++项目的关键配置为task.json文件,该文件会在运行代码时选择“g++.exe”后自动生成在.vscode文件夹下。
task.json文件会在第一次运行项目时生成,用来存储整个项目的构建配置(build configurations),默认如下所示。
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:\\msys64\\ucrt64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
command:项目具体运行的方法,此处为g++。
args:参数数组,按照编译器期望的特定顺序排列,这些参数将会传递给g++。具体为:告诉 g++编译活动文件${file}(根目录下的cpp),然后在当前目录${fileDirname}下生成和活动文件名一致的exe文件。
以下图文件结构为例,${file}代表hello.cpp文件,${fileDirname}代表1文件夹。
problemMatcher:编译项目过程中发现错误和警告信息的方法,此处为gcc。
isDefault:true代表运行项目时默认调用此配置。 当定义了多个tasks时,可根据不同的情况调整项目运行时具体使用哪个tasks配置。
2、根目录下的多文件运行
当项目根目录文件夹下有多个cpp文件,修改如下即可多文件运行,"${workspaceFolder}/*.cpp"代表构建运行当前目录下的所有cpp文件。
hello.cpp中 #include "2.h",2.h为2.cpp的声明文件。
注意: .h文件也可以放在单独的子文件中,下述情况也可正常运行。
3、子文件夹下的多文件运行
将多个cpp文件放在项目根目录下会造成项目结构不清晰,尤其项目很大时更是如此。因此,针对此种情况一般会单独新建文件夹(如include子文件夹),如下所示。
相对路径方式如下:
绝对路径方式如下:
"${workspaceFolder}/include/*.cpp":当前项目文件夹下include子文件下的所有cpp文件。
4、总结
多文件运行时需注意文件路径,配置好tasks.json文件中的cpp文件路径就可实现VS Code中多文件C/C++的运行,如有任何疑问可留言,欢迎讨论。