<h2>引言+劝退</h2>
<p>VSCode,全称为Visual Studio Code,是由微软开发的一款轻量级,跨平台的代码编辑器。大家能来搜用VSCode配置c/c++,想必也知道VSCode的强大,可以手握一个VSCode同时编写如C,C++,C#,Java,python等等语言的代码。得益于在VSCode上可以下载很多不同种类的插件,可以给vscode添加很多扩展功能,如代码高亮美化,代码补全和代码检查等。</p>
<p>在今天的内容开始之前,我想先劝退一波。</p>
<p>如果你是刚刚接触编程或是使用计算机并不熟练,我强烈建议:</p>
<p>不要碰VSCode!!!</p>
<p>不要碰VSCode!!!</p>
<p>不要碰VSCode!!!</p>
<p>VSCode的环境配置和文件操作相比于直接下载集成开发环境,对于初学者实在是一种灾难。</p>
<p>要学习C/C++,可以去下一个Visual Studio,如果嫌占内存太大,不写什么大工程,可以去下一个Dev-C++</p>
<p>要写Java,去找IntelliJ IDEA</p>
<p>要写python,去找pycharm</p>
<p>总之,初学者建议先熟悉下计算机和编程再来搞VSCode,当初还是小白的我弄了个VSCode的就开始配环境,后期一大堆非程序问题搞得不得不下个集成的环境再学。</p>
<p>能看到这里,说明你已经下定了学习如何在VSCode上写C/C++代码的决心,那么现在就开始我们的内容吧!</p>
<h2>VSCode的下载和安装</h2>
<p>下载vscode直接去搜就可以,这里我附上一个下载链接吧</p>
<p>Visual Studio Code - Code Editing. Redefined</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/6ee9e79b11acaef612f24f466caf77c4.jpeg" alt="75d4e6dfe50842a6a81b6526c7fc8bff.jpeg" />
</p>
<p>这里根据自己的电脑系统选择,我的电脑是windows系统,选择stable版</p>
<p>应用商城里面自带的vscode其实也是可下的</p>
<p>下好之后,我们打开安装包,开始安装</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/882aa527ef0c96904a8853e10911de13.jpeg" alt="edf94d4a89ef41c6a3f3c055758578b4.jpeg" />
</p>
<p>这里下一步其实没什么可说的,路径那里放到哪都无所谓</p>
<p>下面这个界面注意一下,都选上</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/9d4b2a2fc78ae26b9b2b97c59fcbb685.jpeg" alt="d84a18cd9e8d4320acb45555e5df3546.jpeg" />
</p>
<p>最后就是安装完成了</p>
<p>在打开VSCode之后,你会发现,里面都是英文,那是因为你还没安装中文插件</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/1a9c9a936fa47fc00e89cb7a4b56d2fb.png" alt="f821dbc1bc194a06b0409098e081318a.png" />
</p>
<p>在组件里,搜索Chinese,下载最上面那个</p>
<p>右下角会弹出这样一个框</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/f8f3cb008d0d9adbdbb06d48aaaae684.jpeg" alt="aed9c8296f874f7bbe2c2f2e1c9b32c5.jpeg" />
</p>
<p>当你点Restart重启后就已经是熟悉的中文啦!</p>
<h2>VSCode配置C/C++开发环境</h2>
<h3>安装MinGW</h3>
<p>VSCode安装好之后,我们还是要了解到,VSCode毕竟是一个高级的编辑器,只能用来写C/C++代码,不能直接编译代码。所以,如果我们要能使用VSCode搭建C/C++的编译和调试环境,还必须要有编译器。为了方便,我们使用MinGW-w64,MinGW-w64是移植到windows平台的一个gcc编译器,用起来很方便。</p>
<p>下载MinGW-w64的话,下面是下载地址</p>
<p>MinGW下载地址</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/23d748b3dfc3523f0a1f6333cbfbf9a1.png" alt="978e44aab69d43a7aff9a7af94037add.png" />
</p>
<p>在这个界面,不要直接点下载,先往下拖动,建议下载这个</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/6351f24a907a556a8c896585448849e2.png" alt="3fc6b2fd7e5b4f5a9f26f915f1399a1c.png" />
</p>
<p>点击之后,正常情况下,就应该开始正常下载了。</p>
<p>MinGW-w64下载好之后,需要先解压缩</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/b294dc3f7a48afe6165f1e5e0f1bb30a.png" alt="021bba8f8a684116b88cd87628ab7ef4.png" />
</p>
<p>最后会解压出一个文件夹,建议将文件夹放到一个容易管理的地方,这里我放到C盘的根目录下</p>
<p>C:\mingw64</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/54f7733928f0c7dd80297e8e8c2801bf.png" alt="592a4d39e3b34566b906f2f50810708f.png" />
</p>
<h3>配置MinGw</h3>
<p>在windows电脑上,按win+s快捷键,或者直接在搜索框中搜:环境变量,就可以看到:</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/b09a25dae3352af9f28a8c8de0c01644.png" alt="3a41008af81b49d7b09af88f76d98243.png" />
</p>
<p>点击环境变量</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/c146bd561009de23e0b959cceb3e9443.jpeg" alt="e3e54e37515043eda6cbb21fff47362d.jpeg" />
</p>
<p>找到系统变量中path路径,点击打开</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/cb684f874495ea1e46021cc3dd3544d3.jpeg" alt="5b7b50c4fa90426dabbf0f371efe81de.jpeg" />
</p>
<p>在最后添加上C:\mingw64\bin (放在了不同的路径,只要保证最后是\mingw64\bin就行)这个路径</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/46c648e97a35c9f81f4c5c47001aa294.jpeg" alt="39c3191581b44431b31dc956d54c8ff3.jpeg" />
</p>
<p>最后连续点击确定三次层层退出</p>
<p>这样mingw编译器套件基本上就配好了</p>
<p>接下来,我们需要安装一个C/C++插件</p>
<p>我们直接搜索c/c++,选择最上面那个直接安装上就行</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/0289c0b5ec67287c56078bc59e34dd1d.png" alt="55401828ece84d02a5a3463ebd6b6468.png" />
</p>
<p>安装完之后,重启一下,VSCode配置C/C++环境这一块的工作就算彻底完成。</p>
<h2>在VSCode上编写C/C++代码并编译成功</h2>
<p>VSCode上写代码首先需要打开文件夹,这样也可以方便管理代码和编译器产生的可执行程序和VSCode生成的配置文件(总之就是很有好处)。在写代码前,先要考虑好把代码放在什么地方管理。</p>
<p>这里我创建一个名字叫test_vscode的文件夹,在我的C根目录当中</p>
<p>我们要保证创建的文件夹中的路径是没有中文名的,不然后续会有一系列问题,就比如调试莫名报错之类</p>
<p>用中文名调试时的报错(其中马赛克位置是中文):</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/f5211769096d7227efb3c573bbb128ae.png" alt="5a657461dc5c40afb76e7b213cfb8777.png" />
</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/451c74106d4ca8683cdfc6704d1abf72.png" alt="fd33f0c79b3d4a86b61796ec280f6dea.png" />
</p>
<p>用VSCode打开此文件夹</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/1c8a4566feef332d495f53ebc6afba28.png" alt="f61e91d1801d4465b4fe73d10997555e.png" />
</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/5e1f4e9b25f417a1e8c9b6ab4b4ac271.png" alt="e5b19bff44654b4eb9f1d86605edb1aa.png" />
</p>
<p>然后文件夹就被顺利打开了 </p>
<h3>编写C/C++代码</h3>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/bac81db582ee84067ecfaccb185eb266.png" alt="1db7f3ddbbf74f6db8edb59495f767c6.png" />
</p>
<h3>编译当前代单个文件代码</h3>
<p>在我们编译代码前需要创建下图黄框内的两个文件</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/59f53f118243bb0a25a161afc3608add.png" alt="94108f4b4ad74fed9e31608b92c1e7c3.png" />
</p>
<p>第一个文件的创建方式,在中间搜索框打>,然后找C/C++编译配置</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/09383b048ef220673b79cca95dfbcbed.png" alt="bc1933ca0f6b40839efac68b01f4d9a1.png" />
</p>
<p>这里进到这样一个界面</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/3da04132b496e5109ea2700f5a4f3ca0.png" alt="0ceea35b80454298912cd896e1367331.png" />
</p>
<p>这里选择编译器路径</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/aa795a87bc44211218b0551a40e794fd.png" alt="35d57aa83a4f40758af154f5f58baeeb.png" />
</p>
<p>再次根据图片选择</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/875748ded40d2b2f9e2166455adb5541.png" alt="9abb1a71b18345d6a1ae05d0c9eee829.png" />
</p>
<p>这时关闭这个界面就会发现,下面这些已经在不知不觉间生成了</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/4c21b479379b2917034fb97d0e9e6dca.png" alt="e270948990a64068a133483a4ea1395f.png" />
</p>
- //c_cpp_properties.json
- {
- "configurations": [
- {
- "name": "Win32",
- "includePath": [
- "${workspaceFolder}/**"
- ],
- "defines": [
- "_DEBUG",
- "UNICODE",
- "_UNICODE"
- ],
- "windowsSdkVersion": "10.0.22621.0",
- "compilerPath": "C:/mingw64/bin/gcc.exe",
- "cStandard": "c17",
- "cppStandard": "c++17",
- "intelliSenseMode": "gcc-x64"
- },
- {
- "name": "C++",
- "includePath": [
- "${workspaceFolder}/**"
- ],
- "defines": [
- "_DEBUG",
- "UNICODE",
- "_UNICODE"
- ],
- "windowsSdkVersion": "10.0.22621.0",
- "compilerPath": "C:/mingw64/bin/g++.exe",
- "cStandard": "c17",
- "cppStandard": "c++17",
- "intelliSenseMode": "gcc-x64"
- }
- ],
- "version": 4
- }
复制代码
<p>这份c_cpp_properties.json其实也不用自己创建,把我的直接复制粘贴过去也行 ,这个对C/C++都适用</p>
<p>这时我们来创建第二个文件tasks.json</p>
<p>在代码文件下选择终端里的配置任务</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/ed5c822e9d7118be73a4f6a04cda6768.png" alt="c19fdc5ec52142c6a619ec037706472d.png" />
</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/1cb4ca8aa7a063628b4b50d61ff35502.png" alt="6abd83291d53429aaefc6c207b4f7a4a.png" />
</p>
<p>在做出选择之后,第二个文件就配置完毕了,现在我们来编译一下代码</p>
<p>在终端中选择运行生成任务</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/4589669ed3b37d434a6a4a3514d24e4e.png" alt="36a499db70fc4e7daf5f37321afdd9be.png" />
</p>
<p>这里的gcc和g++怎么选不用我说了吧</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/0f441f9566d263598e656aa49ff07ab1.png" alt="cd0580953a3542aca2402c8aeea9b1af.png" />
</p>
<p>选择之后,你会发现在test.c下面多了一个可执行文件test.exe</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/e1eead447666ad30d23d5003d8a717c1.png" alt="002abc27586b47e299a2c328c8e69bdf.png" />
</p>
<p>此时 Ctrl + `</p>
<p>同时终端中输入<strong>.\test.exe</strong>运行代码回车就开始运行了</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/3ffb5b0ca3cd65beec5ae59a95389efd.png" alt="78b9654b35774313ac41895a9471d4a0.png" />
</p>
<p>同样的方式也可以编写c++代码</p>
<p>唯一要注意的是,C++在创建第一个文件时,建议改一下配置名称,如果复制粘贴了我的第一个文件就不用管了</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/2491669fb0af9206d189afcf1266b5a9.png" alt="97885a5eb5f243678dea945e04978bb2.png" />
</p>
<p>点击确定,然后其他正常生成文件</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/5a65e906610754fd6ea9244d22913a60.png" alt="e89a3781f43d43518cca72d7e7cb18e7.png" />
</p>
<h3>编译多个文件代码</h3>
<p>这里需要改一下.vscode中tasks.json文件的一些内容</p>
<p>图中我标了注释的地方就是需要改动的地方,然后这是改动后的文件</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/35a20a6d6a8ba9f44601f936ec600de4.png" alt="f986cc9c7ffc4ec4baed36f0aad10817.png" />
</p>
- //tasks.json
- {
- "version": "2.0.0",
- "tasks": [
- {
- "type": "cppbuild",
- "label": "C/C++: g++.exe 生成活动文件",
- "command": "C:\\mingw64\\bin\\g++.exe",
- "args": [
- "-fdiagnostics-color=always",
- "-g",
- "${workspaceFolder}/*", //${file}
- "-o",
- "${workspaceFolder}\\${workspaceRootFolderName}.exe" //${fileDirname}\\${fileBasenameNoExtension}.exe
- ],
- "options": {
- "cwd": "${fileDirname}"
- },
- "problemMatcher": [
- "$gcc"
- ],
- "group": "build",
- "detail": "编译器: \"C:\\mingw64\\bin\\g++.exe\""
- }
- ]
- }
复制代码- //test.cpp
- #include<iostream>
- #include"add.h"
- using namespace std;
- int main()
- {
- int a = 10;
- int b = 15;
- int c = Add(a,b);
- cout << a<< " " << b << endl;
- cout << c;
- return 0;
- }
复制代码- //add.h
- #pragma
- int Add(int x,int y);
复制代码- //add.cpp
- #include"add.h"
- int Add(int x,int y)
- {
- return x + y;
- }
复制代码
<p>最后编译器将文件夹所有文件都编译链接生成一个以文件夹命名的 .exe 文件 </p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/1bc9754d0396031cd7f4fa77ae80f9ca.png" alt="23ec3376c0cb4e72874e293a43ab934b.png" />
</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/376bcf2bc744c5dde157a63857ec799f.png" alt="aea2b92f5502479d9ac28d1499a22416.png" />
</p>
<p>下面是运行 </p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/782ce74d89adb525e7cdf64ae2ce0903.png" alt="9ed15d0b9a0e4a5e8cf71344a15159fc.png" />
</p>
<h2>VSCode的调试</h2>
<p>调试这里另外需要一个文件,launch.json文件</p>
<h3>创建launch.json文件</h3>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/7830023ecbef7d1047420c8f73df1edb.png" alt="dfd0c180111f4a718ea15b61d3c121dc.png" />
</p>
<p>点击之后会弹出一个窗口选择,这里我们一定要选择<strong>C++(GDB/LLDB)</strong></p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/21fe01689e741a72e5d5cab67e7cc1f6.png" alt="32f8a40dfa8c487484af984f8157707f.png" />
</p>
<p>这时就会生成一个launch.json文件,这时候文件里几乎什么都没有,我们点击右下角的添加配置</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/733266710104dc9bf226e9d3fcc73be2.png" alt="0fe981ed3d7a4317a961dabce28bc5f6.png" />
</p>
<p>选择第三个gdb启动</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/5f2b04ff5b97f81e6024b18a504206be.png" alt="38a93fbfa8e4409eb95c0d9962c496f9.png" />
</p>
<p>其中,下面标出的这两个位置是需要修改的</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/52a425bedb849a45742c0b5c158f206c.jpeg" alt="73bc7657b60d479eb246727264cb8237.jpeg" />
</p>
<p>下面是修改后的文件 </p>
- {
- // 使用 IntelliSense 了解相关属性。
- // 悬停以查看现有属性的描述。
- // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "name": "(gdb) 启动",
- "type": "cppdbg",
- "request": "launch",
- "program": "${workspaceFolder}\\${workspaceRootFolderName}.exe", //输入程序名称(也就是需要调试的文件),例如 ${workspaceFolder}/a.exe
- "args": [],
- "stopAtEntry": false,
- "cwd": "${fileDirname}",
- "environment": [],
- "externalConsole": false,
- "MIMode": "gdb",
- "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe", //调试的工具(mingw,bin中有gdb) /path/to/gdb
- "setupCommands": [
- {
- "description": "为 gdb 启用整齐打印",
- "text": "-enable-pretty-printing",
- "ignoreFailures": true
- },
- {
- "description": "将反汇编风格设置为 Intel",
- "text": "-gdb-set disassembly-flavor intel",
- "ignoreFailures": true
- }
- ]
- }
- ]
- }
复制代码
<h3>调试运行 </h3>
<p>修改之后,进行编译,生成一份test_vscode.exe之后就可以开始调试</p>
<p>此时我们就可以直接按 F5 开始调试,F9打断点,F10逐过程(遇到函数当成一条语句跳过),F11逐语句(遇到函数跳转到函数内部按语句一步步走)</p>
<p>
<img src="https://i-blog.csdnimg.cn/blog_migrate/4cfe58875a49105ad857f86982f8f181.png" alt="e807f8d0e0244ac4a02e37e5835d5be9.png" />
</p>
<h2>结语</h2>
<p> 关于VSCode上搭建C/C++开发环境的内容,到这里就结束了,这里博主感叹一下,VSCode真的挺强大的,作为一个编辑器,可以通过和编译器链接成为开发环境,将环境配置好的话,在这上面写代码似乎也是个不错的选择。大家有任何疑问,欢迎在评论区中提出,本篇博客有任何问题和错误也欢迎来和博主讨论,真心希望能和大家一起进步。最后,如果本篇博客对你有帮助的话,能不能给博主一个三连啊!感谢大家的支持♥</p>
<p> </p>