最新VScode C/C++ 环境配置的详细教程

 更新时间:2020年11月27日 11:06:45   作者:全沾工程师  
这篇文章主要介绍了最新VScode C/C++ 环境配置的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

前言

一次在VScode上配置C/C++环境的记录。

一、VScode下载及安装

VScode官网下载链接:https://code.visualstudio.com/Download
1.安装路径自行选择,例如我的安装路径为D:\Program Files\Microsoft VS Code;
2.安装完成进入VScode后按照步骤install中文插件完成汉化(此处我已完成汉化,故插件包显示“卸载”,未安装情况下此处应显示“install”);

在这里插入图片描述

3.以同样的步骤安装C/C++拓展包(注:此处可能存在插件在线安装失败的情况,可尝试换个网络环境或重启机器;或者按照提示进行离线手动安装)。

在这里插入图片描述

二、MinGW64安装及环境配置

VScode是微软发布的一款轻量级文本编辑器,本质是IDE性质(与txt,notepad++无异),本身不具备编译各种高级语言的能力,故要安装一款编译器配合VScode使用。

1.MinGW介绍

MinGW 的全称是:Minimalist GNU on Windows 。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。而且还可以使用一些 Windows 不具备的Linux平台下的开发工具。一句话来概括:MinGW 就是 GCC 的 Windows 版本 。

以上是 MinGW 的介绍,MinGW-w64 与 MinGW 的区别在于 MinGW 只能编译生成32位可执行程序,而 MinGW-w64 则可以编译生成 64位 或 32位 可执行程序。

1.MinGW64安装

自行搜索MinGW的各种版本的安装包(注:现代Windows机器一般选择64位的x86-64版本),我的安装包是x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0_2,自行选择解压路径,即安装路径,例如我的安装路径为E:\mingw64(注:此路径非常重要,是VScode能正确连接编译器的桥梁)。

2.配置环境变量

1.在MinGW64的安装路径下依次打开E:\mingw64\bin,找到gcc.exe,右键属性复制路径;

在这里插入图片描述

2.(Win系统下)右键我的电脑,单击属性,然后按照图示顺序依次操作,将mingw64目录下的bin文件添加至系统变量;

在这里插入图片描述

3.验证是否配置成功

配置完毕后,快捷键win+r,输入cmd。在窗口依次输入gcc -v、g++ -v、gdb -v,若显示如下图,则表示配置成功;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、配置json文件

VScode是基于一个个文件夹并利用json配置文件来实现的,所以我们新建一个文件夹,右键通过VScode打开。
1.打开后在根目录下新建一个c源文件,并编辑测试代码,如下图所示:

在这里插入图片描述

测试代码如下:

# include<stdio.h>

int main(void)
{
 printf("Hello World\n");
 getchar();  // getchar()函数保证在调试过程中字符一直在终端显示,直到按下任意键
 return 0;
}

2.按F5进入调试,选择C++(GDB/LLDB) —> gcc.exe

在这里插入图片描述
在这里插入图片描述

软件自动在文件夹根目录下生成一个.vscode文件,包含两个json配置文件,如下图所示:

在这里插入图片描述

其中launch.json配置文件代码如下:

{
 // 使用 IntelliSense 了解相关属性。 
 // 悬停以查看现有属性的描述。
 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
 "version": "0.2.0",
 "configurations": [
  {
   "name": "gcc.exe - 生成和调试活动文件",
   "type": "cppdbg",
   "request": "launch",
   "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
   "args": [],
   "stopAtEntry": false,
   "cwd": "${workspaceFolder}",
   "environment": [],
   "externalConsole": true, //控制台输出,false则不显示终端窗口
   "MIMode": "gdb",
   "miDebuggerPath": "E:\\mingw64\\bin\\gdb.exe", //修改成你自己的路径
   "setupCommands": [
    {
     "description": "为 gdb 启用整齐打印",
     "text": "-enable-pretty-printing",
     "ignoreFailures": true
    }
   ],
   "preLaunchTask": "gcc.exe build active file"//该处一定要与tasks.json的lable一致
  }
 ]
}

tasks.json配置文件代码如下:

{
 "version": "2.0.0",
 "tasks": [
  {
   "type": "shell",
   "label": "gcc.exe build active file",//一定与preLaunchTask一致
   "command": "E:\\mingw64\\bin\\g++.exe", //改为你自己的路径
   "args": [
    "-g",
    "${file}",
    // "${fileDirname}\\printf.c",
    "-o",
    "${fileDirname}\\${fileBasenameNoExtension}.exe"
   ],
   "options": {
    "cwd": "E:\\mingw64\\bin" //改为自己的路径的bin文件夹
   },
   "problemMatcher": [
    "$gcc"
   ],
   "group": "build"
  }
 ]
}

注1:要特别注意两个配置文件中的注释部分,尤其是路径部分,要改成自己的安装路径。
注2:两个配置文件中的三处“gcc”和“g++”的区别?(gcc链接c代码,g++链接c++?)。
注3:若要链接多个源文件,则解开tasks.json配置文件中“args”部分代码即可(示例链接printf.c文件),有更简便的方法不需要枚举所有c源文件,自行百度尝试。
注4:配置完成后保存.vscode文件,复制到其他工程的根目录下可省略下一次的重新配置。
注5:每次更改完配置文件后要及时保存,否则不更新配置信息。

四、测试

1.单文件测试

在这里插入图片描述

2.不解开tasks.json文件中的注释部分进行多文件链接测试

在这里插入图片描述

终端提示信息undefined reference to `printf_fun()',观察编译过程发现链接器没有编译printf.c文件,只编译了main.c文件(更别说链接了):
> Executing task: E:\mingw64\bin\g++.exe -g e:\GCC\printf\main.c -o e:\GCC\printf\main.exe <

3.解开tasks.json文件中的注释部分进行多文件链接测试

在这里插入图片描述

测试通过,且终端信息提示两个文件均被编译,且链接器将两个.o文件进行链接:
> Executing task: E:\mingw64\bin\g++.exe -g e:\GCC\printf\main.c e:\GCC\printf\printf.c -o e:\GCC\printf\main.exe <

五、Code Runner

VScode的插件Code Runner安装后,编辑器页面右上方生成一个一键运行按键,如下图:

在这里插入图片描述

测试后,单文件编译能在输出窗口正确输出,但是多文件测试不通过,无法链接多个c文件,如下图:

在这里插入图片描述

还没搞清楚需要配置哪些文件能正常使用Code Runner,故暂时不建议安装该插件。

总结

仅以此记录使用VScode配置C/C++环境的尝试(事实上已经进行了了无数次让人吐血的debug)。文中的一些概念均为多次调试后自己的猜测和理解,某些理解不正确的计算机基础知识望请谅解!

到此这篇关于最新VScode C/C++ 环境配置的详细教程的文章就介绍到这了,更多相关VScode配置C/C++ 环境内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解C++数组和数组名问题(指针、解引用)

    详解C++数组和数组名问题(指针、解引用)

    这篇文章主要介绍了详解C++数组和数组名问题(指针、解引用),指针的实质就是个变量,它跟普通变量没有任何本质区别,指针本身是一个对象,同时指针无需在定义的时候赋值,具体内容详情跟随小编一起看看吧
    2021-09-09
  • C语言实现3*3数组对角线之和示例

    C语言实现3*3数组对角线之和示例

    今天小编就为大家分享一篇C语言实现3*3数组对角线之和示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • C语言实现电子邮件地址验证程序

    C语言实现电子邮件地址验证程序

    这篇文章主要介绍了C语言实现电子邮件地址验证程序,利用的是POSIX正则表达式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • C++ OpenMP简单介绍

    C++ OpenMP简单介绍

    这篇文章主要介绍了C++ OpenMP简介,OpenMP 还支持自定义数据类型的归约操作,需要通过omp declare reduction指令来声明自定义操作符和数据类型的归约方式,感兴趣的朋友一起看看吧
    2023-05-05
  • 基于VC 6.0使用C语言实现俄罗斯方块

    基于VC 6.0使用C语言实现俄罗斯方块

    这篇文章主要为大家详细介绍了基于VC 6.0使用C语言实现俄罗斯方块,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 从头学习C语言之for语句和循环嵌套

    从头学习C语言之for语句和循环嵌套

    这篇文章主要为大家详细介绍了C语言之for语句和循环嵌套,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • C语言实现通讯录管理系统

    C语言实现通讯录管理系统

    这篇文章主要为大家详细介绍了C语言实现通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-01-01
  • C语言中大小写字母相互转化的方法示例

    C语言中大小写字母相互转化的方法示例

    在C语言中,大小写字母的转换可以通过标准库中的ctype.h头文件提供的函数来实现,具体来说,toupper()函数可以将小写字母转换为大写字母,而tolower()函数可以将大写字母转换为小写字母,本文给大家介绍了C语言中大小写字母相互转化的方法,需要的朋友可以参考下
    2024-08-08
  • 实现一个内存池管理的类方法

    实现一个内存池管理的类方法

    下面小编就为大家带来一篇实现一个内存池管理的类方法。小编觉得挺不错的现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • C++ STL中vector容器的使用

    C++ STL中vector容器的使用

    这篇文章主要为大家详细介绍了C++ vector容器的使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03

最新评论