前言
本文将介绍VscodeC/C++
编译运行环境的在Windows
下的搭建, 共介绍2种方案
推荐使用前两种, 即可完成编译运行调试功能
- 使用Vscode的
Tasks
功能来编译运行, 并使用GDB
调试 - 使用
CodeRunner
环境配置
安装Vscode
安装
MinGW-w64
和Clang
LLVM Download Page 在此页面下载Clang:
选Pre-Built Binaries中的Clang for Windows (64-bit), 不需要下.sig文件
MinGW-w64 - for 32 and 64 bit Windows 在此页面下载MinGW-w64
LLVM
下载好了以后安装, 添加环境变量时:选Add LLVM to the system PATH for all users
MinGW
安装时, Architecture选x86_64, 装好以后把东西全部复制到Clang的文件夹里去, 它们会无冲突合并。
PS:
为什么既要装Clang又要装MinGW, 是因为Clang没有头文件。
如果你安装了其他IDE需要注意把其他的MinGW从环境变量中去掉; 也可以自己把它们的编译器设为Clang
- 安装Vscode插件
通过Vscode的扩展搜索并下载以下两个插件
- C/C++ (第一个方案需要)
- Code Runner (第二个方案需要)
- 在
settings.json
中添加如下的配置:
1 | "editor.formatOnType": true, |
方案一
使用 Vscode 优秀的 Tasks 功能启用编译运行命令
- 打开C或者C/C++的工作区, 使用快捷键
ctrl
+shift
+p
, 键入c/cpp: edit configurations
, 按Enter
打开c_cpp_properties.json
将以下的内容覆盖到c_cpp_properties.json
中
1 | { |
- 使用快捷键
ctrl
+shift
+p
, 键入tasks: configure task
, 按Enter
打开task.json
将以下的内容覆盖到task.json
中
1 | // https://code.visualstudio.com/docs/editor/tasks |
这个json里写了两个配置, 一个Build
, 一个Run
。
Build
配置:"command"
选编译器用的。写 C++ 就填clang++
, 写 C 就填clang
"args"
编译参数。像是${fileDirname}
和${fileBasenameNoExtension}
之类的是VS Code的预定义变量, 详见 Variables Reference。"presentation"
详见 Tasks - Output behavior 。"reveal"
控制内置终端面板是否跳出到前端。"focus"
焦点是否跳到面板。"echo"
控制执行的命令是否输出。"problemMatcher"
就 C 语言来说, 功能是将编译器输出的错误捕捉到VS Code的** Problem Panel** 上, 这个面板上的错误并不会及时更新, 每编译一次就更新一次。详见 Tasks - problem-matchers。
Run
配置:"dependsOn"
先运行哪个任务, 这里就是先运行Build
任务(先编译后运行)。"group"
设置组, 这里设置为默认的test组。详见 Tasks - custom-tasks。
键位绑定
到窗口左下角点齿轮再点 「键盘快捷方式」
设置成alt
+f2
, 后续就可以使用这个快捷键来运行c/c++
代码了
配置GDB进行调试
因为安装了c/c++
插件, 所以按f5
即可进行调试
需配置launch.json
使用快捷键ctrl
+shift
+p
, 键入debug: open launch.json
, 按Enter
打开launch.json
将以下的内容覆盖到launch.json
中
1 | // https://github.com/Microsoft/vscode-cpptools/blob/master/launch.md |
- 配置简要说明:
- 注意
"windows"
:下的"miDebuggerPath"
。要将其中的路径改为本机的GDB路径, 放在了前文合并后的clang的bin目录下。 "preLaunchTask"
运行调试前先运行某个任务,这个Build
任务就是前面tasks.josn
里的那个。
- 注意
方案二
使用code runner(不推荐)
缺陷:
- 不能进行调试
- 终端输入会溢出到程序外
使用:
安装完Code Runner插件后, 在settings.json
添加如下的配置:
1 | "code-runner.runInTerminal": true, |
然后使用ctrl
+alt
+n
即可运行代码