VS Code配置C++编程环境(windows)【超详细零基础教程】
写在前面
- 编译器和IDE的区别:
IDE(Integrated Development Environment)指集成开发环境,是用于编写代码、开发程序的应用程序,而编译器是将高级语言编写的程序源代码编译为二进制指令编号和数据文件的工具。IDE有很多种,比如常见的Visual Studio、VS Code、Pycharm、DEV、codeblocks等。但编译器并不多,对于C/C++而言编译器最常见的是免费的gcc/g++编译器。IDE一般包含编译器,有的IDE包含不止一种语言的编译器,但VS Code安装后需要自行配置编译环境,不然无法编译源代码。 - GCC、gcc、g++的区别:
GCC是GNU Compiler Collection的简称,即GNU编译器集合,它可以编译各种高级语言,如C/C++、JAVA、Python等;
gcc是GCC中的C语言编译器;
g++是GCC中的C++语言编译器;
即gcc和g++都包含于GCC中。 - 什么是MinGW:
MinGW 是Minimalist GNU on Windows的简称,它是将GCC移植到Windows操作系统下,使GCC在Windows下可用。即MinGW就是GCC的Windows版本。它是开源且稳定且不断更新的C/C++编译器,所以有非常广泛的使用,我们熟知的IDE如DEV何codeblocks等都是集成了MinGW,所以不需要自己配置环境就可以直接进行源代码的调试编译运行。 - 为什么选择VS Code:
因为界面漂亮,黑色的背景和各种高亮颜色的代码让写程序成为了一种享受……
其实于我而言,主要因为VS Code可以跨平台,在Linux操作系统下也可以使用,而VS只支持Windows和MAC OS。
一:下载并安装VS Code
官网下载地址:https://code.visualstudio.com/Download
安装参考教程:担心知识版权问题所以不放链接在这里,可自行百度“VS Code下载与安装”。
二:在VS Code里安装C/C++插件
如图所示,打开VS Code后点击左侧最后一个图标,然后在上方搜索框中输入“c++”,搜索出的结果的第一个就是我们需要的C/C++插件,点击其右下角绿色的“Install”
图标即可安装。
三:MinGW的安装
方法一:官网下载安装
● 下载地址:http://mingw.org/。不翻墙的话官网下载安装非常慢,心态很容易炸,建议放弃。
方法二:清华镜像下载安装
● 下载地址:https://mirrors.tuna.tsinghua.edu.cn/osdn/mingw/68260/mingw-get-setup.exe
● 安装过程:
● 选择Basic Setup
,右键单击右侧窗口的package,然后选择“Mark for Installation”
将所需的包选中,然后点击菜单栏的“Installation”
,并选择“Apply Changes”
,然后等待安装,这一过程耗时较长,且安装过程可能会出现错误,直接跳过错误,等进度条完成后再次“Installation”–>“Apply Changes”,直至安装完全成功。
● 方法二我自己试了好几遍,可能是电脑原因一直不能成功,且耗时巨大,如果有朋友也出现同样的问题,可直接移步方法三。
方法三:借用其他轻量级IDE集成的MinGW
● 前面讲到很多IDE已经有了编译器,小巧方便,而这些IDE又非常方便下载安装,所以我们可以安装一个小的IDE然后使用其里面的MinGW用作VS Code的环境配置,这里我推荐Dev-C++。在软件管家或直接在搜索引擎搜DEV即可找到安装包,按步骤下载安装即可,这时电脑里就有MinGW了。安装两个IDE对初学者会有帮助,因为VS Code对初学者并不友好,除了要配置环境,VSC还无法直接编译运行单个cpp文件,必须在文件夹里操作。而初学者可以使用Dev-C++,直接可以新建源代码并直接编译运行,非常适合边看书边实现书中的例题。
四:配置环境变量
●在桌面找到Dev-C++图标,单击右键点击属性找到其起始位置,如图
● 根据上述起始位置找到Dev-C++的存储位置,再依次找到MinGW64–>bin,将这个路径复制下来,我的路径为:C:\Program Files (x86)\Dev-Cpp\MinGW64\bin
。
添加路径,方法为:右击“此电脑”,选择“属性”即可打开控制面板,选择左侧的“高级系统设置”,在弹出的“系统属性”窗口选择“环境变量”,在弹出的“环境变量”窗口双击下方的“系统变量”中的“path”
变量,若没有,则新建“path”
变量。然后在弹出的“编辑环境变量”窗口选择“新建”,将上述复制的路径添加进去即可。
● 同样的方法,再新建“LIBRARY_path”
和“C_INCLUDE_PATH”
变量,添加的地址对应为MinGW64里的“lib”
文件路径和“include”
文件路径。我的两个文件路径分别为:C:\Program Files (x86)\Dev-Cpp\MinGW64\lib
和C:\Program Files (x86)\Dev-Cpp\MinGW64\include
。具体步骤和配置结果如下图。
● 这三个路径添加完成即完成了系统环境变量的配置。
五:检测环境配置
● 配置完后我们需要检测是否配置成功,检测方法是:通过快捷键“win+r”
打开“运行”窗口,输入“cmd”
指令进入DOS命令窗口,然后在DOS窗口输入指令“gcc -v”
和“gdb -v”
,如果出现下图所示的内容即环境配置成功。
● 如果出现“‘gcc-v’ 不是内部或外部命令,也不是可运行的程序或批处理文件“的提示,证明配置失败,此时首要检查命令输入是否正确,一定注意gcc与-v之间有一个空格,即应输入“gcc -v”
而不是“gcc-v”
。如果确定输入的指令是正确的但仍然出现这句话,则需要重新配置,即重新进行第四步:环境变量配置。
六:配置VS Code环境
如果完成了上述C/C++编译环境的配置后就新建项目编译运行代码,多半会发现错误,可能会报错“检测到 #include 错误。请更新 includePath。已为此翻译单元 禁用波形曲线。”,这是因为我们还需要配置VS Code的IDE环境。具体方法如下:
● 前面说过,VS Code无法对单独的.cpp文件进行编译运行,需要以文件夹方式进行操作。所以我们首先在自己喜欢的地方新建一个文件夹,并注意文件夹名称应避免中文字符。然后在文件夹里新建一个.cpp文件,然后右键文件夹,选择“通过Code打开”,便进入了VS Code界面。我这里的文件夹名为“tryi”
,里面的.cpp文件名为:“try2.cpp”
。
● 然后双击“try2”
文件,并随便写一点代码,用于后续测试,如我写的代码为一个简单的累加运算:
#include<iostream>
using namespace std;
int count = 0;
int main()
{
int i;
for(i=0;i<10;i++)
count+=1;
cout<<count<<endl;
getchar();
}
● 写好测试代码后点击左侧倒数第二个运行按钮,点击蓝色方框中的“运行和调试”即出现“选择环境”搜索框,点击后选择“C++(GDB/LLDB)”
,然后选择“默认配置”,此时就会产生.vscode
文件夹,并在文件夹中自动产生launch.json
文件。
然后将launch.json
文件中的代码替换为:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceRoot}",// 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
"environment": [],
"externalConsole": true,// 调试时是否显示控制台窗口,一般设置为true显示控制台
"MIMode": "gdb",
"miDebuggerPath": "C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/gdb.exe",// miDebugger的路径,注意这里要与MinGw的路径对应
"preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
● 大家在替换时只需要更改“miDebuggerPath”
中的内容,其内容为大家自己配置的MinGW路径。需要注意的是,直接复制路径产生的格式不对,应把“\”更改为“/”。
然后再在.vscode
文件夹里新建“tasks.json”
文件,将下面代码复制至其中。
{
"version": "0.1.0",
"command": "g++",
"args": ["-g","${file}","-o","-std=c++11","${fileBasenameNoExtension}.exe"], // 编译命令参数
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
● 注意要在"args"中添加"-std=c++11",否则VS Code无法支持C++11新特性如auto、decltype()等。
这个时候再运行“try2.cpp”
文件,会发现提示错误为:
● 这个错误类型的解决办法是:打开c_cpp_properties.json
(首次vscode会提示你打开),把compilerPath
改成你MinGW的路径即可。或者直接在.vscode下新建c_cpp_properties.json
文件,然后将下面的代码复制进去即可:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "8.1",
"compilerPath": "C:/Program Files (x86)/Dev-Cpp/MinGW64/bin/gdb.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
● 我们需要更改的部分就是"compilerPath"
。需要注意的是,更改完"compilerPath"
后还要将"intelliSenseMode"
更改为“gcc-x64”
。保存后再次运行“try2.cpp”
,会发现一切OK。
七:程序运行后结果闪退问题
如果以前经常使用Dev-c++来编写C++程序的朋友可能在第一次使用VS Code时会发现运行后产生结果的黑色窗口稍纵即逝,解决办法是,在主函数最后加上“system(''pause'');”
语句或者“getchar();”
语句即可。