01Windows下VScode配置CC++的编译、运⾏和调试(json⽂件
详细解析)
⼀、环境准备
1. 安装C/C++编译器(MSYS2和mingw-w64的下载安装配置教程)
⾸先我们要知道,VS code只是⼀个编辑器(editor,与记事本是同⼀类程序),并不是IDE(Integrated Development Environment,集成开发环境,例如Visual Studio 2017)。
  它本⾝并没有带任何语⾔的编译器(compiler),对任何语⾔都没有特殊优待,只是提供了许多丰富的、针对各种语⾔的插件。
  于是,我们需要安装⼀个C/C++的编译器,并配置好环境变量。我们可以选择(gcc在windows下的对应)或Clang(苹果公司主导的基于LLVM的C/C++/Objective-C编译器)。
这⾥推荐安装:⼀个Windows下的仿Linux环境,Micro system即仿Linux的微系统,具有空间⼩、运⾏快、与Windows有⼀定的兼容性的优点。
关键还有类似于Linux中yum的pacman软件包管理器,可以帮我们⽅便的安装各种各样的编程⼯具包和⼯具链。
  1)打开清华源镜像的MSYS2主页:
  接着按照主页配置pacman软件包的服务器信息,记得下载安装最新版本的MSYS2,这样才能保证同步更新的成功。
2)安装配置mingw-w64
Mingw-w64是Windows编译C/C++源代码的程序集,为了安装该软件,须执⾏如下命令,即可安装编译C/C++程序所需的编译⼯具如:gcc、g++、make等。
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
此步骤安装的软件包较多,因此可能需要⼀定时间,取决于⽹络和电脑配置,约需3-5分钟。
注意:
  MSYS2 MSYS是程序的主终端,也是安装后⾃动打开的紫⾊图标⿊框,以上步骤都可以在此框中进⾏,但安装完毕后输⼊  gcc-v  会⽆法识别。
  所以,以后我们每次都打开MSYS2 MinGW 64-bit这个蓝⾊图标⿊框,在这个⿊框⾥⾯就能正确识别所有的C/C++编译⼯具。我们也可以在这个⿊框中安装vi,然后像使⽤Linux终端⼀样使⽤这个⿊框。
3)配置环境变量
  因为我们只是在MSYS2这个虚拟机中安装了mingw64,⽽本机并没有识别,所以需要我们⼿动添加环境变量:
这样,我们的Windows系统就能识别到安装的mingw-w64-x86_64-toolchain全部⼯具链,从⽽在 cmd 和 powershell 终端中能够直接识别各种C/C++编译命令。
2. 在VS code中安装C/C++的基本插件
⾸先点击最左边的“插件”图标,通过搜索安装如下三个插件:
C/C++:包含C/C++基本依赖项的插件,必须安装。
Chinese (Simplified) Language:中⽂简体包,可选安装。
Code Runner:多语⾔全能的代码运⾏插件,安装后右上⾓会多⼀个运⾏图标,⿏标右键菜单也多⼀个Run Code选项,可选安装。
visual studio和vs 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 <winsock2.h>
#include <stdio.h>
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⽂件来是最⽅便省事的⽅法,下⾯⽤例⼦来说明:
1. 打开⼀个⽂件夹,创建⼀个cpp⽂件,例如下⾯的main.cpp:
  (按 Ctrl + ~ 打开终端窗⼝)
2. 点击运⾏和调试图标,并点击“运⾏和调试”按钮
  选择C++的(GDB/LLDB)来调试,会⾃动创建⼀个launch.json⽂件
  c++代码就选择g++编译器,c代码就选择gcc编译器。(vs code会⾃动从环境变量中查存在的编译器)
  以我最新版本的VS code,点击之后的结果如下:
  我们可以看到,系统⾃动⽣成了launch.json和tasks.json⽂件,并打开了⼀个编译任务终端和调试任务终端,当前终端是调试任务终端,执⾏main.cpp的代码。
  到此,系统已经⾃动为我们⽣成了编译和调试的json配置⽂件,我们可以直接使⽤。使⽤时记得打断
点,不然调试程序就直接运⾏完毕了。
四、Json配置⽂件详解
  前⾯已经介绍过,我们需要的就是对代码⽂件进⾏编译、调试和运⾏,本质上就是在终端中执⾏g++或gcc编译命令、gdb调试命令、.\命令。
所以,json配置⽂件就是帮我们⾃动输⼊这些命令⽽已。
1. launch.json⽂件解析
2. tasks.json⽂件解析
3. 添加⾃定义配置
  在launch.json⽂件的右下⾓,我们可以点击“添加配置”:
  如果,我们选择 C/C++:(gdb)启动,则会⽣成如下配置代码段:
  我们可以看到,只需要设置 program和miDebuggerPath两个字段的值即可,其他的值与 "g++.exe - ⽣成和调试活动⽂件" 完全相同。还注意到,这个配置没有 preLaunchTask 字段,我们也可以⾃⼰添
加上去。
  显然,这个gdb配置的作⽤是:单独只调试⽽不编译⽣成。
  同样的,我们也可以添加 C/C++:(Windows)启动,完成只运⾏⽽不编译⽣成的任务。
  我们也可以添加 C/C++:(Windows)启动配置后,再添加⼀个preLaunchTask字段,完成编译和运⾏的任务。
  总之,⼤家可以添加不同的配置,进⾏不同的尝试。最后祝⼤家都能玩转VS code,成为⼀名出⾊的程序猿~~~

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。