目录

引言

1.下载以及配置MinGW环境

①下载

②解压后保存bin路径

③配置系统环境path变量

 2.下载vscode

 3.配置vscode相关的插件

4.正式配置vscode 

①降级C++版本

②ctrl + F5运行代码让他自动生成task.json和launch.json文件

③运行代码

④调试代码

5.对json文件大部分语句的理解(这条有助于你更好理解怎么配置) 

①关于launch.json 

②关于task.json

 6.对编码问题以及管理文件的建议

①中文乱码问题

②关于文件生成路径的问题

③关于中文文件无法运行的问题

④关于调出外部系统cmd终端闪退问题 

方法一 :在程序末尾加上system("pause")

方法二:在launch.json中的args添加内容

总结:

 演示时最后的json源码文件供参考:

①launch文件

②task文件 


引言

当我还是个小白的时候第一次配vscode的时候花了超级久的时间,网上的教程大多都是懒人式照搬,不同的电脑还可能出错,我在各个地方不断了解了vscode配置的一些原理和细节,希望能帮助到刚入门的小白!

开始之前请注意:你的用户名和接下来的路径名以及文件夹名一定不要有中文,不然会出错!!!

1.下载以及配置MinGW环境

①下载

MinGW官网下载地址MinGW官网下载地址

把网页滚到最下面部分,选择下载压缩包——x86_64-posix-sjlj(速度会快)

如果官网下的慢可以试试这个软件下载Internet Download Manager的最新免费试用版, 对于所有外网软件下载都很快.

 2de6249091d44a889b317606ca7d5165.png

这里x86_64是64位系统版本

i686是32版本

seh后缀是纯64位编译

posix一般用于跨平台,兼容性好

sjlj后缀的是32和64两种编译

这里不懂不纠结就直接下x86_64-posix-sjlj

②解压后保存bin路径

 下载后解压到一个比较简洁短的方便的路径上,后面配置环境会用到mingw目录下的bin路径.

 6d4efeb42c184d88975b1a0a8a60bf31.png

如果你解压了不知道放哪了,这里推荐一款在电脑上搜索东西特别无敌快的软件:everything

官方下载地址:voidtools

 6bb3695894bd4a5d93894eb4f12c9db6.png

 92767a0266024e5c95f2f361c50dfff8.png

64707494395f4c50b92043955df53a7b.png

 everything找什么东西都非常快,这里很推荐装一个.

③配置系统环境path变量

 这里以win11为例用个最简单的方法,按下win直接搜系统环境.

 3a4fd7e109874142b7c6e39c140d8c3e.pngce9cd3fcb47c4f749cc529401ba5bd25.png

 这里推荐选择下面的系统变量的path,这样你如果创别的用户在电脑上也能用.

d7453685f6aa4a08bcaae9f0d94b51cc.png

 3d6731078b7a47edb9e3e75f152fc269.png

 2.下载vscode

 这里是官网下载地址:vscode官网下载地址

你也可以到电脑自带的Microsoft Store上下载.

 因为我下载过了所以没有弹出来路径设置,设置路径建议不要设在C盘,不然每次点开都有警告弹窗很烦的.

注意:刚下的vscode是英文的很正常,后面有教学怎么下载中文插件.

 4c51775b9bfb4d94b3a4dbf2689e1c5a.png

 3.配置vscode相关的插件

 这里列出我建议的插件列表:

1.Chinese(中文插件)

2.C/C++插件(这个必须得下了)

3.background(喜欢自定义背景的可以捣鼓一下)

4.One Dark Pro(很好看的一款主题)

5.Material Icon Theme(美化你的图标)

6.翻译(英汉词典)(英语差的可以考虑,选中代码中的单词就会显示翻译)

 

d81f7b92c7264511b0df95f742b50122.png

因为我已经下载好了所以是这样,正常搜索之后点安装就行了. 

4.正式配置vscode 

d2ea19aaaade4540a3f14620843e3e23.png

 b251c7b114ee475591fb1085b89ba42c.png

3aaa9caefe974a49aac0b43c97842c28.png

5dbb0539b61e4d6d9eba9bb3a2fb6403.png 7c0040834a9044678f256bbc3b2783f6.png

随便写个代码,这个时候是跑不起来的,这是因为没有配置json文件,下面分享一个绝对不会出错的方法,按步骤一步一步来非常详细.

如果你原来配置了有.vscode文件夹你可以删掉该文件夹重新按我下面说明的方法配置.

①降级C++版本

 进入刚刚下载的拓展C++那里,回退版本到1.8.4然后重新加载一下或者关掉重开vscode.

点击一下拓展插件的小齿轮进入设置.

3ab91f7404334bb5b587a8ba14ef7882.png

 20545416dd96411a9adce1be7ee6f08d.png

②ctrl + F5运行代码让他自动生成task.json和launch.json文件

注意:每个.vscode文件夹只作用于当前的文件夹,也就是说新文件夹都要新生成.vscode才能使用.

先按ctrl + F5上面会出现选择调试器选项!

d42a22ef2c48432bb4f01ccb21169a3a.png

 487ff90d36b84f62a56542989300988e.png

 11d5d94e04724c969828b19599eb88ee.png

③运行代码

 到这里的时候你的vscode就已经可以跑代码了,他会显示在vscode下面的集成终端里.

 4cd3c2cfb26d4ff99b24a23d92af89d0.png

④调试代码

41e88cc9dcac4d0eb8ffddd976c3131a.png

 2cbecb688d9e4870ae40c18f8f6c9981.png

这里我建议把C++插件重新升级到最新版不然每次代码出错不会有警告弹窗提示你

下面这个是我更新到最新版才有的警告弹窗,旧版不会有警告弹窗所以容易让你debug的时候出现问题.

 看到这里就大体上差不多了,剩下的是我对json大部分语句的理解以及如何优化更好的管理你生成的编译文件.

5.对json文件大部分语句的理解(这条有助于你更好理解怎么配置) 

launch是有关程序调试的部分,task是有关编译运行的部分

${fileDirname}意思是当前运行程序所在文件夹的路径

${fileBasenameNoExtension}当前文件去掉拓展名的名字

${fileDirname}\\${fileBasenameNoExtension}.exe合起来就是当前目录下编译执行的exe文件

注意这里的宏定义无法表达中文所以你文件名如果有中文就会报错(后面有解决方法)

①关于launch.json 

f77feff3551449eb816215ed43fa22e8.png

②关于task.json

51fcba43b8ac4ae398b489ed1feb723e.png

 这里的args看下面cmd窗口的调用更加能理解里面的意思.

4b16cca99aa2405f849a9a3ee21896bb.png

在当前目录下打开cmd窗口,输入上面的command中g++地址+空格+.cpp文件+空格+"-o"+ .exe文件.

 99e8de3d91af4ee5aca94c29e2dcf4a8.png

 edb42cf6c271477e82e691d70c42c2c7.png

这上面的步骤vscode都帮你做好了,这就是args里代码的用途. 

 6.对编码问题以及管理文件的建议

①中文乱码问题

因为默认编码是UTF-8,而我们的电脑不是,所以运行中文代码往往不行,这里介绍一个解决方法:在task.jsonargs里的"${fileDirname}\\${fileBasenameNoExtension}.exe"后面加上英文逗号然后回车到下一行,粘贴"-fexec-charset=GBK" 并保存即可.

 277294a0410b4315a93aba562e044c0c.png

②关于文件生成路径的问题

写一个文件马上又生成一个exe在同目录下,这样文件多了就会非常碍眼,这时候建议你在同目录下新创一个文件夹来存放生成的exe文件.

67a72a2606ae4e598c814db2e2e9ebb0.png

 9ded63712ff9455495716611981643f2.png

d13c5c144888462b9f1a62637c41f868.png

你也可以手打绝对路径例如上面那个可以写成:D:\\VS\\test\\all_exe\\${fileBasenameNoExtension}.exe.

 2153cfd9b61a498eb2145e7f803fce4e.png

③关于中文文件无法运行的问题

首先明确一点:可以解决但是会有弊端,先说解决方法.

 d409a0a619b44e12b7a77d285b0d73ef.png

 e63ba6630bb74afebcc28e9da88f206f.png

task中的 ${fileBasenameNoExtension}以及launch中的${fileBasenameNoExtension}都改成test.exe(这里随你便不是中文都行,改成1.exe还是a.exe什么的都行)

这样的弊端:

①以后运行文件只会生成你改成的exe文件并会不断覆盖,比如改成test.exe,这样vscode每次编译都只会生成test.exe一直覆盖同一个exe.

中文名的代码无法调试只能运行,系统检测不到断点.

④关于调出外部系统cmd终端闪退问题 

有的人喜欢自己调出外部的终端(在launch中将externalConsole修改成true),但是发现总是闪退看不到结果,这里提供了两种方法以及优缺点.

方法一 :在程序末尾加上system("pause")

优点是没有副作用,每次都会停下来看到结果,缺点是每次都要多打这一行.

方法二:在launch.json中的args添加内容

abe1fd72e950428187ccafba94e19721.png

 优点可以每次自动停留不会闪退,缺点无法调试任何程序!!!

总结:

vscode是一款非常强大的编译器,但是很多小白往往因为配置方面而被劝退,如果我的文章帮到你了,给个关注点赞支持一下呗!如果有问题可以私信或评论我会解答!(若有错误欢迎指正!)

 演示时最后的json源码文件供参考:

①launch文件

 //launch文件
{
"version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - 生成和调试活动文件", //名字在最下面那一条
            "type": "cppdbg", // 不重要可以不知道,意思是你的配置类型
            "request": "launch", // 现阶段不需要知道,不重要.
            //"program": "${fileDirname}\\all_exe\\test.exe", // 可执行文件的路径,意思是执行哪个exe文件
            "program": "C:\\WINDOWS\\System32\\cmd.exe",
            "args": [
                "/C",
                "${fileDirname}\\all_exe\\test.exe",
                "&",
                "pause"
            ], // 不重要
            "stopAtEntry": false, // 不重要
            "cwd": "${fileDirname}", // 不重要
            "environment": [], // 不重要
            "externalConsole": true, // 意思是要不要启用外部的终端,false默认用vscode的集成终端,true就是调用系统的终端.
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\VS\\mingw64\\bin\\gdb.exe", //调试调用gdb路径
            "setupCommands": [ //往下不重要.
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe 生成活动文件" // 为了调用task,在task中的label与这个对应.
        }
    ]
}

②task文件 

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件", // 与launch中的"preLaunchTask"对应匹配.
            "command": "D:\\VS\\mingw64\\bin\\g++.exe", //编译器g++的路径
            "args": [
                "-fdiagnostics-color=always", //不清楚
                "-g", //调试功能,没有的话就检测不到断点.
                "${file}", //当前编译器打开的文件的名字(例如刚刚的1.cpp)
                "-o", //运行指令
                "${fileDirname}\\all_exe\\test.exe", //运行的.exe文件指令.
                "-fexec-charset=GBK"
            ], //往下都不重要.
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

对MinGW下载后缀解释参考了:VsCode安装和配置c/c++环境(超完整,小白专用)_vscode安装c++运行环境_黄化的多多的博客-CSDN博客

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐