VsCode安装+C/C++配置+安装配置过程中的经典问题

前言

本文只是做了整合,以及结合网络资料做出一些自己的理解,如有不对之处期望各位大佬的指正。也可以留言出自己遇到的问题,大家一起解决。这样可以帮助看到留言版的人解决问题。另外希望在按照本文安装过程中按步骤依次安装,则会出现更少的问题。本文仅适用于使用Windows操作系统的安装。CSDN中支持点击放大图片,故遇到看不清的图片可点击放大进行观看。文中部分描述需要结合上下文理解,希望各位在为解决单独的问题时,能耐心的找到前文阅读解决方案。

VSCode下载安装

软件下载

Download Visual Studio Code -Mac, Linux, Windows。点击官网链接,根据自己电脑的操作系统下载即可。建议下载zip格式,因为exe格式安装后更改VsCode扩展安装位置时会有较多的操作步骤。点击x64。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第1张图片

此时可能出现网页打不开,因为这是官网的下载路径,此时可以改用国内镜像下载,即将下载链接:https://az764295.vo.msecnd.net/stable/e8a3071ea4344d9d48ef8a4df2c097372b0c5161/VSCode-win32-x64-1.74.2.zip

更改(红色部分)为:

https://vscode.cdn.azure.cn/stable/e8a3071ea4344d9d48ef8a4df2c097372b0c5161/VSCode-win32-x64-1.74.2.zip

进入更改的链接就可以下载VsCode最新版的zip文件。

软件安装

在C盘以外的盘中建立一个VsCode文件夹,用于放置VsCode。

将下载好的zip文件用解压软件解压到此文件夹中。解压完成后即安装好了VsCode。安装成功后即如下图所示。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第2张图片

在上图所示的文件夹中建立data文件夹。这是因为直接打开Code.exe会导致以后的扩展程序会安装在C盘当中,因为VsCode默认在C盘建立你的数据文件。此时建立data文件,在以后使用VsCode的过程中,产生的用户数据与扩展程序都会存入这个data文件中。(这种更改扩展安装位置的方法,仅适用于通过Zip下载的VsCode软件。)

在上图中所示的文件夹中右击Code.exe文件创建快捷方式,然后将快捷方式拖动至桌面。这样便于以后通过桌面的快捷方式打开VsCode。拖动至桌面后文件夹中的快捷方式可以删除,至此VsCode安装结束。

VsCode配置C/C++

VsCode改为中文设置。(若想用英文,这一步可省略)

点击打开VsCode,点击“扩展(下图红框框选的部分)”。

在扩展中搜索“Chinese”选择中文简体,然后点击install,安装完成后右下角出现是否应用的弹窗提示。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第3张图片

点击蓝色按钮将会自动重启VsCode,并且界面变为中文界面。如下图。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第4张图片

添加C/C++扩展。

在扩展中搜索C/C++,然后安装C/C++扩展。默认安装为最新版本,但最新版本无法自动生成之后配置C/C++时需要的launch.json文件。所以来到扩展。如图所示,点击齿轮,点击“安装另一个版本”,选择较低的版本,我选择的v1.7.1.

VsCode安装+C/C++配置+安装配置过程中的经典问题_第5张图片

安装与配置MinGw。

有关MinGw的介绍在次不作过多的解释,详情可以自己百度。在此仅需知道VsCode编译C/C++过程中需要下载这个程序,值得注意的是在VsCode中通过MinGw编译生成的exe文件,在不同的终端下执行会因为编码格式不统一产生中文乱码的问题,这个问题稍后做解释,在此先进行MinGW的安装。

官网下载MinGw

点击上面的超链接进入下载的官网,一直下滑找到这个下图所示的界面:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第6张图片

32位选择i686-win32-sjlj或i686-win32-dwarf,64位可选择x86_64-win32-sjlj或x86_64-win32-seh,不同点在于sjlj更稳定,seh,dwarf性能更优,有关seh,sjli,dwarf实际上是三种异常处理模型,并不会特别影响程序的运行。详情参见:https://blog.csdn.net/AMDDMA/article/details/111600238

将下载后的文件选择解压到C盘以外的盘中,此处无需建立文件夹。

解压完成后会得到“mingw64”的文件夹,32位可能名称有些不同,但不影响接下来的操作。

打开mingw64文件夹->打开里面的bin文件夹(此处仅显示了bin内的两个文件,实际不止)。

单击上图中bin旁的空白部分,ctrl+c复制文件路径,便于之后将MinGw加入环境变量。

将MinGw添加到环境变量。

电脑屏幕左下角有搜索框。

在搜索框中输入“环境变量”,点击编辑系统环境变量。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第7张图片

然后点击环境变量。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第8张图片

点击“系统变量”中的path。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第9张图片

然后点击编辑得到:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第10张图片

点击新建,然后将刚才复制的路径粘贴上去:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第11张图片

最后一直点击确定保存你的设置。

测试MinGw配置成功

在电脑屏幕左下角的搜索框中输入“cmd”,点击”以管理员身份运行”。(弹出是否运行框选择是)。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第12张图片

在得到的cmd终端中输入:gcc -v -E -x c++ -

按回车得到如下图所示的结果框,则说明MinGw配置成功。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第13张图片

VsCode的使用(以C为例)

建立C语言文件

在C盘以外的盘中建立一个文件夹,名字全英文,表示以后建立的C/C++的工程文件均放置于此,如图:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第14张图片

打开安装完成的VsCode,点击“文件”,点击“打开文件夹”,

VsCode安装+C/C++配置+安装配置过程中的经典问题_第15张图片

在下图所示界面找到你之前建立的工程文件夹。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第16张图片
VsCode安装+C/C++配置+安装配置过程中的经典问题_第17张图片

点击“选择文件夹”,打开文件夹回到VsCode界面。此时会出现下图所示界面。(电脑可能会询问你是否信任文件夹的作者,选择信任)。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第18张图片

将鼠标光标放置此文件夹上,会有提示:

第一个为新建文件,第二个为新建文件夹,选择“新建文件夹”,在下方就可以输入名字即可建立一个文件夹,文件夹名称最好不要使用中文。

建立第一个工程文件夹,如下图所示。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第19张图片

右击建立的工程文件夹,选择新建文件,建立一个文件后缀名为.c或.c++文件。如图所示:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第20张图片
VsCode安装+C/C++配置+安装配置过程中的经典问题_第21张图片

建立运行代码需要的配置文件

建立c_cpp_properties.json文件。点击查看,打开“命令面板”,(也可以使用ctrl+shift+p,快捷键打开)(这里只提供一个方法给需要生成c_cpp_properties.json文件的人,这一步可省略,不想建立的人可直接跳过接下来的两步)。

第一步:一般来说这里会直接弹出“C/C++编辑配置”,若没有弹出也可以在搜索框中输入这一个配置名称,这里选择打开后缀名为JSON的编辑配置。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第22张图片

第二步:然后,VsCode会自动生成c_cpp_properties.json文件与.vscode文件夹。

在第一个.c文件中输入一段简单的C语言代码。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第23张图片

然后点击“运行”,“启动调试”。

然后会弹出下图所示界面,选择第一个。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第24张图片

然后选择如下所示的配置。然后等待程序运行。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第25张图片

运行结束后,打开VsCode下方的“终端”,终端将输出程序运行的结果。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第26张图片

点击“资源管理器”,位置如图所示:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第27张图片

会发现自动生成了.vscode文件夹,里面有launch.json文件与tasks.json文件。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第28张图片

使用过程中的经典问题

关于程序运行在cmd终端与VsCode内部终端的切换问题

VsCode默认将你编写的程序的运行输出到cppdbg终端。如下图所示:

若我们不愿意在终端运行程序(因为终端运行时会附带一些文件信息),可以将其更改为在我们熟悉的cmd终端下运行程序。具体操作如下:

点击打开launch.json文件,将"externalConsole"中的false改为true,即将启用外部终端原为false(否)改为true(是)。

然后点击打开hello.c文件,点击运行,便可以通过cmd窗口运行程序了。但是此时会出现两个问题,窗口一闪而过的问题与cmd终端输出中文出现乱码的问题。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第29张图片

窗口一闪而过的问题

原因是launch.json文件没有配置使cmd终端窗口输出结果后暂停的代码指令,也没有在.c文件代码中输入使cmd终端窗口输出结果后暂停的代码。解决方案有两个:

方案一:将launch.json文件中的代码段,如图所示:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第30张图片

将program后的路径复制到args后,program后修改为

C:\\Windows\\system32\\cmd.exe

继续修改此处代码使得与下图保持一致:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第31张图片

此时再次运行.c文件程序就会从cmd弹出结果,且不会闪退。

这样做的优点是可以使以后写的代码程序在VsCode中编译运行时,在cmd终端中不会闪退。但是缺点是,若从计算机中找到生成的hello.exe文件,直接点击运行那么程序仍然会闪退。即来到如图所示的路径下点开hello.exe文件,发现程序闪退。所以需要方案二。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第32张图片

方案二:在编写的代码中添加控制窗口运行的代码。

即在代码文件添加如图所示代码。添加完成后点击运行生成新的.exe文件。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第33张图片

此时来到电脑之前的路径中打开.exe文件

VsCode安装+C/C++配置+安装配置过程中的经典问题_第34张图片

将会发现.exe文件不会闪退。

此方法的优点是此时无论是在VsCode编译运行(在VsCode中运行时注意要在launch文件中启用外部终端),还是到电脑文件夹中打开运行,均不会造成闪退,而且使用方案二时,可以省略掉方案一的所有操作。缺点是每写一次代码文件时就需要添加上述红框中的代码。(网上也有其他的代码来使程序框运行后不直接退出,但本质均为添加代码的方法。)

所以建议是,若只需要在VsCode运行程序在cmd终端输出时应用方案一,当需要生成的文件在电脑的路径下也能运行时不闪退,则在有这样的需求的代码文件中执行方案二。

编码格式不统一导致的中文乱码问题

这个问题的根本原因是cmd终端,VsCode运行启动的终端,编写的代码文件,这三者之间的编码格式不统一。编写的代码文件的编码格式也决定了生成的.exe文件的编码格式。

cmd终端编码格式默认为GBK格式,即简体中文格式,即在cmd终端中输入chcp,显示为“活动页936”(如下图所示)。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第35张图片
VsCode安装+C/C++配置+安装配置过程中的经典问题_第36张图片

而VsCode中默认编写的.c文件格式的编码格式为UTF-8,如图:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第37张图片

VsCode在运行编码文件时内部的终端编码格式为UTF-8。如下图所示:使用VsCode内的终端运行一个简单的c语言程序,得到如下图所示:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第38张图片

在此可以看到,VsCode将程序运行到了cppdbg这个终端,而在这个终端中输入“chcp”,查看这个终端的编码为“65001”,即UTF-8编码,而此时左下角显示UTF-8是hello.c文件编码,所以此时运行的结果“你好世界”,不会出现乱码。

此时根据之前的方法切换到cmd终端运行,由于cmd终端的编码为GBK编码,hello.c文件是UTF-8编码,由于编码格式不一致故此时会显示中文乱码。如下图。

所以中文乱码问题实质是因为编码格式不统一。VsCode内运行.c文件程序的cppdbg终端的编码格式,我目前为止也没有找到更改的方法,但是c文件的编码格式,与cmd终端的编码格式均可以修改,下面给出这两种编码的修改方案。

C文件编码的修改:这里有两种方案第一种便于切换,第二种便于一劳永逸。下面两种均为将UTF-8格式改为GBK格式,也可以用同样的方法改GBK格式为UTF-8格式。

第一种,可以打开.c文件,通过左击右下角的UTF-8(如下图所示),点击“通过编码重新打开”。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第39张图片
VsCode安装+C/C++配置+安装配置过程中的经典问题_第40张图片

下滑找到“GBK编码”,并点击。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第41张图片

此时会发现编写的代码中的“你好世界”变为了乱码,且与之前在cmd终端输出的乱码相同。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第42张图片

说明更改编码格式成功了。按快捷键“ctrl+z"可以恢复c文件代码中的乱码为原来的中文。此时若在cmd终端中运行,cmd终端内的中文就不是乱码了,如下图所示:

第二种方法,第一种方法虽然可以改变c文件的编码,但是每次建立c文件通过方式一修改过于麻烦,因为VsCode建立文件时默认建立的是UTF-8编码的文件。实际可以通过修改设置,更改为每次建立文件时默认建立GBK编码的文件。具体做法如下:

在下图所示中,点击齿轮,进入设置,

在设置中输入encoding。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第43张图片

点击UTF-8,找到GBK,点击确定。这样在以后建立文件时,默认建立的文件即为GBK格式。

Cmd终端编码的修改:Cmd终端默认是GBK编码,故下面描述如何更改为UTF-8编码,值得注意的是,更改后可能导致系统在打开一些只认识GBK编码的软件时出现乱码。修改方式如下(修改过程含重启电脑,请注意保存自己的文件):

打开电脑的设置,点击“时间和语言”,如下图所示:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第44张图片

点击找到“日期、时间和区域模式设置”,一般直接出现在如图所示的区域,若此区域没有,可点击左侧栏切换,然后找到此设置。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第45张图片

点击“其他日期,时间和区域设置”,

VsCode安装+C/C++配置+安装配置过程中的经典问题_第46张图片

点击“区域”

VsCode安装+C/C++配置+安装配置过程中的经典问题_第47张图片

点击“管理”,点击“更改系统区域设置”。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第48张图片

在下图中勾选后点击确定,会弹出重启电脑的提示框,重启电脑完成后电脑cmd终端即可变更为UTF-8编码。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第49张图片

重启后打开cmd终端,在其中输入chcp,会发现变为编码变为了“65001”即UTF-8格式编码。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第50张图片

根据上述教程,即可根据自己的想法统一编码,解决中文乱码的问题。为方便决策,在此做出以下建议。若需要来回在cmd终端与VsCode内的cppdbg终端切换,则将系统编码设为UTF-8,而文件编码与cppdbg终端编码默认为UTF-8,此时三者均统一,但是会造成系统以后在打开一些只认识GBK编码的.exe文件时出现乱码。若只用cmd终端输出程序运行结果,则设置默认建立.c文件为GBK格式,使代码文件与cmd终端的格式相同即可。若只用终端,那么不用做任何设置,但就要忍受每次运行程序时总将伴随一些信息在内部的终端中输出。

VsCode使用断点调试时无效的问题

VsCode在默认生成的launch.json文件下编译运行时,不会产生断点调试无效的问题。但根据本文中为解决“窗口一闪而过的问题”的方案一修改launch.json文件后会出现设置断点调试无效的问题。原因是在方案一中将program后更改为了使用cmd终端,如图所示:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第51张图片

而默认生成的launch.json文件中的program为:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第52张图片

故在启用断点调试时无法根据方案一解决cmd窗口闪退的问题,此时可以采用解决窗口闪退问题的方案二,不改变默认文件中的program配置,或者放弃使用断点调试。我的做法是在launch.json文件中

准备两行program代码,通过切换注释的方式,在launch.json中切换program的配置,达到既使用VsCode断点调试也使用方案一的目的。如图所示:

VsCode安装+C/C++配置+安装配置过程中的经典问题_第53张图片

文件路径含中文名称报错的问题

文件路径中含中文名称,当以VsCode默认启动程序启动时会报如图所示的错误。(以建立一个"你好世界.exe"为例)。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第54张图片

为解决”窗口一闪而过的问题“的方案一中修改了文件的启动程序,当以该程序启动编译时,会出现如下图所示错误。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第55张图片

此时发现”你好世界.exe“中的”你好世界“成为了乱码,但是此时到”你好世界.exe“的存放位置中打开此程序发现正常输出。(注意到存放位置打开“你好世界,exe”文件,需在原代码文件中添加防止闪退的代码。详见解决“窗口一闪而过问题”的方案二)。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第56张图片

一开始我以为是启动程序的问题,但是后来注意到以方案一的启动程序启动时,此时的中文名称的.exe文件中的中文名称为乱码,故我将电脑系统的编码格式改为UTF-8。(详见”编码格式不统一导致的中文乱码问题“。

更改后再次来到VsCode中以方案一中的program运行编译程序,注意代码文件也应改为UTF-8编码格式,此时便可以正常输出了。

VsCode安装+C/C++配置+安装配置过程中的经典问题_第57张图片
VsCode安装+C/C++配置+安装配置过程中的经典问题_第58张图片
VsCode安装+C/C++配置+安装配置过程中的经典问题_第59张图片

你可能感兴趣的:(c语言,c++,vscode)