这篇文章是笔者最开始学习使用vs code配置c/c++环境,第一次配置的时候,没有问题,但是评论区有小伙伴配置不成功,笔者又照着这个教程重新配置了一下。没有问题。于是乎,想着再写一篇文章重新说明一下,但是又觉得没必要,这里把重要的点提一下。
MinGW-w64官网下载还是很慢的,这里贴上百度云链接
链接:https://pan.baidu.com/s/1MEc98YJBkVjdF5ruWznlZg
提取码:1q0i
在安装过程中如果网络不好,尝试利用手机热点安装,多试几次。
安装完之后测试
首先查看自己的includepath路径。在cmd下输入
gcc -v -E -x c++ -
结果
我们需要的是我框出来这部分的路径。接下是是重要的部分。
将【includePath】和【path】按照自己的路径修该。注意,这两部分是一样的。
上图我框了6行,直接将这前5行粘到后面,需要修改的是第1、2行(应该和顺序无关,方便称呼),即
"D:/mingw64_GCC8.1/mingw64/include/**",
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../include",
第一个路径是需要自己查的。找到自己安装的mingw
然后第二个照着修改成自己的路径即可。
最终修改
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceRoot}",
// 以下7行需要修改
"D:/mingw64_GCC8.1/mingw64/include/**",
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../include",
// 将查询结果直接粘进来
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed"
],
"defines": [
"_DEBUG",
"UNICODE",
"__GNUC__=6",
"__cdecl=__attribute__((__cdecl__))"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": "",
"path": [
"${workspaceRoot}",
// 以下7行需要修改
"D:/mingw64_GCC8.1/mingw64/include/**",
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../include",
// 将查询结果直接粘进来
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
"D:/mingw64_GCC8.1/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed"
]
}
}
],
"version": 4
}
根据自己路径修改 "miDebuggerPath
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceFolder}/exe/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
"environment": [],
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"MIMode": "gdb",
// 这里的路径需要修改。改成自己的路径
"miDebuggerPath": "D:/mingw64_GCC8.1/mingw64/bin/gdb.exe",
"preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
直接粘
{
"version": "2.0.0",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${workspaceFolder}/exe/${fileBasenameNoExtension}.exe"
], // 编译命令参数
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"\\"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
#include
using namespace std;
int main(int argc, char const *argv[])
{
cout << "hello world" << endl;
system("pause");
return 0;
}
注意在test01.cpp的界面下按f5
结果
更新于2022/07/13
MinGW:可以理解成包含多种编译环境的可自由选择安装的其中的部分的软件
下载地址:https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/
直接弹窗下载即可,下载完按照下面教程安装配置即可。
鉴于有很多人安装失败,我将 MinGW 安装文件放在了网盘,链接如下:
链接:https://pan.baidu.com/s/1hng1o1ruDn11JlnQBq7xaw
提取码:r823
安装
安装完成后界面
下载相关文件(重要步骤)
打开MinGW,勾选编译器软件
- mingw32-gcc.bin(c语言文件编译器)
- mingw32-gcc-g++.bin(c++语言编译器)
- mingw32-gdb.bin(调试编译后文件)
若在安装的时候报“找不到 xxx 库”的错误,可以重新勾选此库和dll文件
选择完后,点击 Installation > applychange,等待安装完就ok
对于 mingw32-gdb.bin 等下载失败问题,这里我把所需的三个文件放在网盘,下载后将自己没下载成功的对应文件放到 MinGW\bin 目录下即可,链接如下:
链接:https://pan.baidu.com/s/1ZJFnR_MRkOTeufjKO4dLnw
提取码:18rx
这里很容易下载失败,可以尝试用手机热点下载,多尝试;再不行,多下载几次
添加环境变量
右击 我的电脑 点击 属性
点击 高级系统设置
点击 环境变量
在系统变量中选择 Path,新建
将 bin地址 加入环境变量 (我的是 “D:\MinGW\bin”)
检测是否安装成功:命令提示符中输入 gcc -v ,若显示版本号则说明安装成功
下载地址:https://code.visualstudio.com/Download
安装完成后,打开软件
下载中文插件
下载 c/c++ 插件
插件安装完成后 重启 VSCode
在此文件夹新建一个 .vscode 文件夹
在 .vscode 文件夹中新建三个文件
将下列代码复制到文件中
务必根据自己的安装位置修改文件路径
c_cpp_properties.json
“includePath” 路径获取方法 cmd 下输入:
gcc -v -E -x c++ -
修改 “includePath” 和 "Path"
将图示这几行代替其中路径即可
“d:/mingw/include/**” 此条路径也根据你的路径修改加入即可
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceRoot}",
"d:/mingw/include/**",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++/mingw32",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++/backward",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../include",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include-fixed"
],
"defines": [
"_DEBUG",
"UNICODE",
"__GNUC__=6",
"__cdecl=__attribute__((__cdecl__))"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": "",
"path": [
"${workspaceRoot}",
"d:/mingw/include/**",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++/mingw32",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include/c++/backward",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/../../../../include",
"d:/mingw/bin/../lib/gcc/mingw32/8.2.0/include-fixed"
]
}
}
],
"version": 4
}
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceFolder}/exe/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
"environment": [],
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"MIMode": "gdb",
"miDebuggerPath": "D:/MinGW/bin/gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
"preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
tasks.json
直接复制粘贴即可,无需修改
这里我顺便把 exe 的路径改了。在 “args” 中,需要进行修改可自行百度,此处我的会将编译生成的 exe 文件单独放在一个 exe文件夹 中
{
"version": "2.0.0",
"command": "g++",
"args": [
"-g",
"${file}",
"-o",
"${workspaceFolder}/exe/${fileBasenameNoExtension}.exe"
], // 编译命令参数
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"\\"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
这里解释一下args中自定义 exe文件存放路径:
${workspaceFolder}: 当前工作路径
exe: 自己建的文件夹
${fileBasenameNoExtension}: 当前文件的文件名,NoExtension意思就是不带后缀名,然后加个 .exe 就是当前的exe文件,也就是编译生成的 exe 文件
上述路径放一起意思就编译生成的 exe 文件放在exe文件夹中, 把这条配置删除的话,编译生成的exe文件就默认放在了当前工作路径下。
顺便说一下 vscode 中一些变量代表什么意思
${workspaceFolder} :表示当前workspace文件夹路径,也即/home/Coding/Test
${workspaceRootFolderName}:表示workspace的文件夹名,也即Test
${file}:文件自身的绝对路径,也即/home/Coding/Test/.vscode/tasks.json
${relativeFile}:文件在workspace中的路径,也即.vscode/tasks.json
${fileBasenameNoExtension}:当前文件的文件名,不带后缀,也即tasks
${fileBasename}:当前文件的文件名,tasks.json
${fileDirname}:文件所在的文件夹路径,也即/home/Coding/Test/.vscode
${fileExtname}:当前文件的后缀,也即.json
${lineNumber}:当前文件光标所在的行号
${env:PATH}:系统中的环境变量
转载:VSCode配置 c++ 环境(小白教程)_若尘的博客-CSDN博客