一键搞定 VSCode 下的 C/C++基本开发环境配置
先决条件: C/C++编译器(例如MingGW64)环境已经配置好VSCode已安装C/C++插件
如果没问题, 那就直接开始:新建一个文件夹, VSCode打开此文件夹,然后写一个 文件F5运行, 依次选择: "C++ (GDB/LLDB)"和"gcc.exe - 生成和调试活动文件"cpp文件同理, 第二步改为选择"g++.exe - 生成和调试活动文件"
搞定收工!
如果对于某些细节仍然存在疑问, 请继续看下面的内容.
如果你在寻找中快速配置基本开发环境的方法,那么本文正好适合你。
一年前的教程可能在教你如何编辑和。尽管学会编辑这些配置文件是用户的必经过程,但是同样会给初学者带来心理压力。如果首先展示给用户的是最小可用配置,我相信用户会慢慢接受并喜欢上 VSCode。
很显然的用户体验一直在不断完善。最初大家会从网上寻找配置文件,但其实官方插件很早就支持智能识别环境并生成配置,可以快速地完成基本开发环境的配置。官方文档有非常详细的说明,但是会稍微落后于插件版本,而且我认为某些地方并不适合国内的条件。本文基于官方文档,但是精简了步骤。相信你们看完之后会发现上手VSCode其实很简单。
本文测试环境:测试平台: Windows 10VSCode 版本: 1.44.2 (user setup)
先决条件
安装官方扩展安装官方扩展
2. 安装 下载MinGW-W64
确认已将的文件夹路径添加至环境变量。文件夹路径示例如下:c:\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin
创建项目文件夹
新建一个文件夹,用打开此文件夹,然后创建一个简单的 C 文件(CPP 也可以)。
helloworld
生成配置文件
2020年11月24日更新: 目前版本的插件已经解决了必须首先创建.vscode文件夹的bug,现在可以跳过下面的第1步直接按F5了
可以一键生成基础配置文件:新建一个文件夹。如果不先创建此文件夹,将无法完美生成配置文件,这可能是插件的一个逻辑错误。我相信很多人都知道配置引导这件事,但是很多时候自动生成的配置文件无法正常工作,原因就在这里。打开你创建的 C 文件,运行。不出意外的话会弹出配置引导面板,在弹出面板中依次选择以下选项:C++ (GDB/LLDB)gcc.exe - 生成和调试活动文件
稍等片刻,会自动在文件夹下生成和。这样生成的两个配置文件是相互匹配好的,可以直接用于基本的运行和调试。如果是 C++文件,选择编译器即可。
一键生成配置文件
至此, C/C++ 基础开发环境的配置已经完成。
进阶知识
如何编译多文件项目
例如现在工作文件夹下新增了两个文件:include/mod.h, mod.c。入口文件helloworld.c 中引入了 mod.h多文件项目示例
那么将 tasks.json 如下配置:
解释:去掉 参数,因为这样只会编译当前c文件指定为所有要编译的c文件使用 参数引入头文件目录
所以这个其实和VSCode无关,VSCode只是帮我们执行gcc命令,关键还是gcc构建多文件项目的基础知识:gcc参数需要包含要编译的h文件和C文件
为什么修改 似乎没有效果?
(2020年11月24日更新)有些人试图修改中的配置(例如修改-o参数后面的生成路径), 但实际上会发现没有任何效果, 这里解释一下原因. 我曾经看过一部分C/CPP插件的源代码, 我的理解就是这个插件在运行的时候会首先加载一些预定义的针对不同编译器和源文件类型的默认task("C/C++: gcc.exe build active file"就是其中之一, 所以中的任务本身就是插件中预定义然后帮你导出的). 最终结果就是, 对于插件而言,要运行的任务名正好自己已经从内部加载, 就会优先执行自己内部定义并加载的默认task而忽略掉中的task(即存在一个外部的同名task),即使用户修改了其中的某些配置). 实际上用户可以删除并保留, 这不会有任何问题. 那么如果想要修改并使用中task怎么办?我想你们已经猜到了, 只要将后面的任务名称修改掉,并且和中的项的值保持一致,插件就会乖乖使用用户自定义的task了修改preLauchTask的值使两个配置文件保持一致
和是什么?
简单的理解: -> ; -> 。启动调试会话之前需要首先执行编译任务。因此,有一条配置,指向中的编译任务()。其实有些人的配置无法运行的部分原因就是这个不一致。
是什么?
这个文件主要是用于VSCode语法提示的配置,例如:指定 include 路径,问题匹配类型等。打开, 找到并打开:。进行一些配置后,文件夹下会自动生成此文件。这个配置不会影响到gcc编译命令,只是让你在编写代码时能有方法、变量等的语法提示。
例如,这里配置了include,语法可能不报红了,但是你依然需要修改tasks.json来使gcc编译参数包含头文件路径,不然F5运行时依然会出错,具体参考上面的“如何编译多文件项目”。
c_cpp_properties.json 示例:
如何支持 MSVC 编译器?
如果你安装了编译器或者安装了 VS(已勾选 MSVC 组件),那么 VSCode 同样会智能识别(如果检测到环境,则会出现在配置引导面板中)并帮你生成对应的配置文件。
但是,想要使用就不能直接启动 VSCode,必须先从开始菜单启动,然后输入来启动 VSCode。一个简单的理由是:包含比较复杂的环境变量设置,从 Prompt 启动的 VSCode 会继承其环境变量。
另外,也有比较内行的人通过配置来启动所对应的脚本。但是这样做有一个明显的缺点:每次编译时都需要等待那个耗时大约 2~3s 脚本启动。因此我的建议是按照官方说明来:从中启动 VSCode。
如何隐藏编译任务界面?
运行或调试文件时,系统会启动两个终端,一个是用于显示编译任务,另一个是用于执行调试命令并显示程序运行结果。但是很多时候前一个终端没有显示的必要,可以将其设置为只在编译失败时显示。步骤如下:打开 ,插入一条配置(输入时会有提示, 按直接插入此项配置的默认值,不用逐个输入)。将的值改为字符串。
设置静默执行编译任务
本文使用 Zhihu On VSCode 创作并发布