VSCode 在 Mac 系统上使用 C++ 开发相信很多人都觉得配置比较难,配置教程也是各式各样的。经过多次的尝试,并参考了 官方教程,在原有资料的基础上进行了补充和整理,这里输出了一个自己配置成功的方法。
⚠️注意:本文同样适用于 Windows 系统。
预先安装
1.安装 VSCode
官方地址 Visual Studio Code on macOS
2.安装插件 C/C++
,在扩展插件中搜索 C++。
3.确认已安装 Clang
,Clang
可能在你的电脑里安装过了,打开终端,输入以下命令来确认是否安装。
clang --version
若 Clang
未安装,使用 xcode-select --install
进行安装。
创建项目
1.创建一个 Hellow World 项目进行测试:
mkdir projects
cd projects
mkdir helloworld
cd helloworld
code .
上述步骤,创建了一个 Helloworld 项目,并在 VSCode 中打开。
2.创建一个 cpp 文件
3.创建一个文件取名为 helloworld.cpp,将以下代码粘贴进文件中,并按 Command + S
进行保存。
#include <iostream>
using namespace std;
int main()
{
for(int i=0; i<=5; i++)
cout << "Hello World " << i << endl;
return 0;
}
配置 C++ 相关设置文件
我们需要生成三个文件:
- tasks.json (compiler build settings)
- launch.json (debugger settings)
- c_cpp_properties.json (compiler path and IntelliSense settings)
tasks.json 文件
tasks.json 用来告诉 VSCode 如何编译该程序,这里会调用 Clang C++ 进行编译。
这里需要将 helloworld.cpp 文件在编辑界面中打开,然后选择菜单栏 Terminal
(终端) > Configure Default Build Task
(配置默认生成任务),选择下面选项。
现在在 .vscode 文件夹中,就生成了 tasks.json 文件。将下面的代码替换掉原来的内容。
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "clang++ build active file",
"command": "/usr/bin/clang++",
"args": [
"-std=c++17",
"-stdlib=libc++",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
接下来,回到 helloworld.cpp 文件,按 Ctrl + Shift + B
进行编译或选择 Terminal
(终端) > Run Build Task
(运行任务)。
如果编译成功,会在终端中显示,并且可以在目录中看到有一个 helloworld.dSYM 文件夹。(这是用于 Debug 的,先不管它)
launch.json 文件
该文件用于配置 VSCode 启动 LLDB debug。
选择 Run
> Add Configuration
,并选择 C++ (GDB/LLDB),再选择clang++ build and debug active file
现在在 .vscode 文件夹中,就生成了 launch.json 文件。其内容如下:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "clang++ - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"preLaunchTask": "clang++ build active file"
}
]
}
参数解释:
program
表示你具体的想 Debug 的程序- 其中
${fileDirname}
表示程序所在的文件夹 ${fileBasenameNoExtension}
表示想要 Debug的程序。不需要进行修改,对你想要运行的文件进行 Debug 就能够自动识别。
- 其中
stopAtEntry
设置为 true 时,会让 debugger 在 main 函数处进行一次停顿。preLaunchTask
的值要和 task.json 中 label 的值一致。
开始 Debug
回到 helloworld.cpp,这一步非常重要,因为 VSCode 会检测你当前哪个窗口处于活跃状态,并对其进行 **Debug。(活跃:你的界面中显示的窗口,并且有光标)
使用 F5
或从菜单栏中选择 Run
(运行) > Start Debugging
(启动调试)就能进行开始 Debug。