本文使用 Zhihu On VSCode 创作并发布
如果你在寻找VSCode
中快速配置C/C++
基本开发环境的方法,那么本文正好适合你。
一年前的教程可能在教你如何编辑launch.json
和tasks.json
。尽管学会编辑这些配置文件是VSCode
用户的必经过程,但是同样会给初学者带来心理压力。如果首先展示给用户的是最小可用配置,我相信用户会慢慢接受并喜欢上这种配置方式。
VSCode
的用户体验一直在不断完善。最初大家会从网上寻找配置文件,但其实官方插件很早就支持智能识别环境并生成配置,可以快速地完成C/C++
基本开发环境的配置。官方文档有非常详细的说明,但是会稍微落后于插件版本,而且我认为某些地方并不适合国内的条件。本文基于官方文档,但是精简了步骤。相信看完之后你会发现事情是如此简单。
本文测试环境:
- 测试平台: Windows 10
- VSCode 版本: 1.44.2 (user setup)
先决条件
安装
C/C++
官方扩展安装官方扩展 安装 MinGW-W64。如果你已经安装了其他编译器(例如 LLVM),在阅读本文之后可以自行尝试。
下载MinGW-W64 确认已将
MinGW-W64
的bin
文件夹路径添加至PATH
环境变量。bin
文件夹路径示例如下:c:mingw-w64x86_64-8.1.0-win32-seh-rt_v6-rev0mingw64bin
创建项目文件夹
新建一个文件夹,用VSCode
打开此文件夹,然后创建一个简单的 C 文件(CPP 也可以)。
生成配置文件
VSCode
可以一键生成基础配置文件:
新建一个
.vscode
文件夹。如果不先创建此文件夹,将无法完美生成配置文件,这可能是插件的一个逻辑错误。我相信很多人都知道配置引导这件事,但是很多时候自动生成的配置文件无法正常工作,原因就在这里。打开你创建的 C 文件,
F5
运行。不出意外的话会弹出配置引导面板,在弹出面板中依次选择以下选项:- C++ (GDB/LLDB)
- gcc.exe - 生成和调试活动文件
稍等片刻,会自动在.vscode
文件夹下生成launch.json
和tasks.json
。这样生成的两个配置文件是相互匹配好的,可以直接用于基本的运行和调试。 如果是 C++文件,选择g++.exe
编译器即可。
至此,C/C++环境的基础配置已经完成。
进阶知识:
launch.json
和tasks.json
是什么?
简单的理解:tasks.json
-> gcc
;launch.json
-> gdb
。 启动gdb
调试会话之前需要首先执行gcc
编译任务。因此,launch.json
有一条配置preLaunchTask
,指向tasks.json
中的编译任务(label
)。其实有些人的配置无法运行的部分原因就是这个不一致。
c_cpp_properties.json
怎么生成?
这个文件主要是用于语言引擎的配置,例如:指定 include 路径,智能感知,问题匹配类型等。Ctrl+Shift+P
打开Command Palette
, 找到并打开:C/C++:Edit Configurations (UI)
。进行一些配置后,.vscode
文件夹下会自动生成此文件。
如何支持 MSVC 编译器?
如果你安装了MSVC
编译器或者安装了 VS(已勾选 MSVC 组件),那么 VSCode 同样会智能识别(如果检测到MSVC
环境,则会出现在配置引导面板中)并帮你生成对应的配置文件。
但是,想要使用MSVC
就不能直接启动 VSCode,必须先从开始菜单启动Developer Command Prompt
,然后输入code
来启动 VSCode。一个简单的理由是:MSVC
包含比较复杂的环境变量设置,从 Prompt 启动的 VSCode 会继承其环境变量。
另外,也有比较内行的人通过配置tasks.json
来启动Developer Command Prompt
所对应的脚本。但是这样做有一个明显的缺点:每次编译时都需要等待那个耗时大约 2~3s 脚本启动。因此我的建议是按照官方说明来:从Developer Command Prompt
中启动 VSCode。
如何隐藏编译任务界面?
运行或调试文件时,系统会启动两个终端,一个是用于显示编译任务,另一个是用于执行调试命令并显示程序运行结果。但是很多时候前一个终端没有显示的必要,可以将其设置为只在编译失败时显示。步骤如下:
- 打开
tasks.json
,插入一条配置presentation
(输入presentation
时会有提示, 按TAB
直接插入此项配置的默认值,不用逐个输入)。 - 将
reveal
的值改为字符串"silent"
。