vscode原生并不支持c++和远程开发,但vscode拥有丰富的extension扩展,实现了其自身的强大功能。
C++/cmake环境配置
- 说明
vscode本身并不支持C++和cmake,需要安装插件extension- 插件安装方法
- 插件安装方法
- 插件
编译&调试
- 说明
vscode下c++开发通过json配置文件完成:配置文件位于workspace_path/.vscode下:
其中,主要的配置文件包括两个:(可以直接拷贝过去)- task.json
配置编译选项:包括编译当前目录,编译方法… - launch.json
配置运行(debug/run)相关,包括:要运行的executable/运行目录/输入参数…
- task.json
- 编译 task.json例子
{
"version": "2.0.0",
"command": "sh",
"args": ["-c"],
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "new"
},
"tasks": [
{
"label": "cmake1", // 任务的标签,launch. jsonpreLaunchTask会用
"type": "shell",
"options": {
"cwd": "${workspaceRoot}/build" // 当前目录
},
"args": [
"cmake -DCMAKE_BUILD_TYPE=Debug .. && make" // 编译命令写到这
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
- run/debug launch.json 例子
- 支持标准输入的重定向
- 参数的传入
{
"version": "0.2.0",
"configurations": [
{
"name": "clang++ build active file",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/untitled1", // 要启动的程序
"args": ["-r", "/home/mingtao.lmt/data/amatch_debug/110000",
"<",
"data/trace1.txt"], // 参数传入&标准输入重定向
"stopAtEntry": false,
"cwd": "${workspaceFolder}", // 当前目录
"environment": [],
"externalConsole": false,
"MIMode": "lldb", // 调试模式,linux选择gdb,mac lldb
"preLaunchTask": "cmake1" // 启动前可以指定编译(对应task.json中label)
}
]
}
在基于vscode 的界面调试过程中可以使用DEBUG CONSOLE 窗口,如下所示:
remote开发
- 说明
vscode的远程开发与clion的最大区别是(代码并不在本地存放,不需要同步代码),vscode的remote develop更像是一个远程桌面(类似vnc):代码存放在远程,本地只是显示器。 - 插件
外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述")]
<img src="**** width=“40%”> - 连接方式
- command shift P 打开命令行
输入remote
- 输入例如
mingtao.lmt@100.81.183.85
登录远程机器,显示效果如下:
- 然后就可以像在本地操作一样了
- command shift P 打开命令行
配置google风格
- Ctrl + ,,
打开设置 - 输入 clang-format
- 将C_Cpp.clang_format_fallbackStyle值从Visual
Studio改为 Google
常用快捷键
- Command shift p /f1
打开命令窗口 - 格式化对齐
Shift + Option + F - 编译/debug
Command shift b
F5/ctrl f5 - 光标上一处/下一处 ctrl(shift) -
- 到定义 f12/ command + 鼠标左键
- 折叠fold: command k 0
- 打开unfold: command k j