共计 2386 个字符,预计需要花费 6 分钟才能阅读完成。
文章目录
- 一、事先准备
- 二、Code Runner 插件自动编译运行(不能调试)
- 三、配置 json 文件来编译、调试、运行(重点!通用方式)
- 四、Json 配置文件详解
一、事先准备
1. 安装 C /C++ 编译器(mingw-w64 的下载安装配置教程)
首先我们要知道,VSCode 只是一个编辑器(editor,与记事本是同一类程序),并不是 IDE(Integrated
Development Environment,集成开发环境,例如 Visual Studio)。
它本身并没有带任何语言的编译器(Compiler),对任何语言都没有特殊优待,只是提供了许多丰富的、针对各种语言的插件。
于是,我们需要安装一个 C /C++ 的编译器,并配置好环境变量。我们可以选择mingw-w64(gcc 在 windows 下的对应)或 Clang(苹果公司主导的基于 LLVM 的 C /C++/Objective- C 编译器)。
2. 设置环境变量
将安装好的压缩包解压,记下文件路径,添加到环境变量中
新建一个环境变量 MinGW
设置成功以后,可以在 cmd 或 powershell 终端中直接识别各种 C /C++ 编译命令。
3. 在 VS code 中安装 C /C++ 的基本插件
首先点击最左边的“插件”图标,通过搜索安装如下三个插件:
- C/C++:包含 C /C++ 基本依赖项的插件,必须安装。
- Chinese (Simplified) Language:中文简体包,可选安装。
- Code Runner:多语言全能的代码运行插件,安装后右上角会多一个运行图标,鼠标右键菜单也多一个 Run Code 选项,可选安装。
二、Code Runner 插件自动编译运行(不能调试)
安装此插件之后,直接可以通过右上角的图标或鼠标右键菜单来运行程序,结果直接在名为 Code 的输出中显示。
注意:但是在代码中使用了 scanf、cin 等输入语句时,会因为 Code 输出是只读的,导致程序无法输入数据也无法执行完毕,只能直接关闭重启 VScode。
重启 VScode 后,我们需要依次打开:文件>首选项>设置>用户>拓展>Run Code Configuration,找到 Run In Terminal 勾选上
这时,代码会在内部名叫 Code 的集成终端下执行,能够进行输入,且可以点击右上角的垃圾桶图标可以直接结束程序运行并关闭集成终端。
PS:插件编译运行的注意问题
Code Runner 插件只能自动的编译并运行,类似的还有 C /C++ Compile Run 插件等,它们本质上是代替用户输入了编译和执行命令,但存在一些局限。
例如,当我们在代码中使用了 winsock2.h 这个头文件时,使用插件运行就会产生链接错误:
#include
#include
int main(){
SOCKET client_socket=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
printf("Compile successfully!");
}
原因是,插件都是按照预先设定好的规则,自动在终端执行编译和运行的指令,也就是上面红色划线部分的命令:
gcc A.c -o A ;
.A
但是使用 gcc/g++ 来编译使用了 winsock2.h 的代码时,我们应该在编译指令中增加“-lwsock32”指令,而插件默认情况下不会添加这条指令。
正确的编译指令应该是:gcc A.c -o A -lwsock32
解决方法就是打开终端,我们手动输入以上编译命令,再输入“.A”即可
三、配置 json 文件来编译、调试、运行(重点!通用方式)
如果我们想要在 VScode 中调试代码,那么配置 json 文件来是最方便省事的方法,下面用例子来说明:
-
打开一个文件夹,创建一个 cpp 文件,例如下面的 main.cpp:(按 Ctrl + ~ 打开终端窗口)
-
点击运行和调试图标,并点击“运行和调试”按钮
-
选择 C ++ 的(GDB/LLDB)来调试
-
C++ 代码就选择 g ++ 编译器,c 代码就选择 gcc 编译器。(vs code 会自动从环境变量中查找存在的编译器)
以我最新版本的 VS code,点击之后的结果如下:
四、Json 配置文件详解
前面已经介绍过,我们需要的就是对代码文件进行编译、调试和运行,本质上就是在终端中执行 g ++ 或 gcc 编译命令、gdb 调试命令、.main.exe 命令。
所以,json 配置文件就是帮我们自动输入这些命令而已。
1. launch.json 文件解析
-
新版本点击运行和调试过后不会直接自动生成 launch.json 文件,自定义运行和调试需要创建 launch.json 文件
-
点击后会在当前目录的.vscode 文件下创建一个 launch.json 文件,点击右下角添加配置
-
如果,我们选择 C/C++:(gdb)启动,则会生成如下配置代码段:
我们可以看到,只需要设置 program 和 miDebuggerPath 两个字段的值即可,其他的值不用更改。
这个 gdb 配置的作用是:单独只调试而不编译生成。 -
这个配置没有 preLaunchTask 字段,我们也可以自己添加上去,这样可以完成 编译 和调试 的任务。
-
同样的,我们也可以添加 C/C++:(Windows)启动,完成 只运行而不编译生成 的任务。
-
我们也可以添加 C/C++:(Windows)启动 配置后,再添加一个 preLaunchTask 字段,完成 编译 和运行 的任务。
2. tasks.json 文件解析
- tasks.json 是在调试或运行之前执行的编译任务定义
也就是说:
preLaunchTask 字段是用来指定在 调试启动之前要执行的任务 ,比如编译代码。
在 tasks.json 中定义的任务标签(label)会被 preLaunchTask 引用,执行相应的任务(tasks 中的 command)。
通过这种方式,可以在调试或运行程序之前,确保代码自动编译,保证你调试的是最新的可执行文件。
原文地址: Windows 下 VScode 配置 C /C 的编译、运行和调试(json 文件详细解析)