前言

  从大一开始学习c++用的dev-c++,后来看到老师用的是vs  code,实在是馋它的颜值便去下了vs  2017。至于为什么下载vs 2017呢?是因为下载的时候我以为他们是一样的,便下了vs  2017,好家伙下了我好几个G。体积大我还是可以接受的,但是每次写题的时候都要去建个项目,一建就是一个文件夹,而且写main函数的时候前面还要引用头标。实在是太麻烦了,写的代码还不好管理。以至于我在后来我改用vs code。vs  code比起vs  2017来说是轻便得多,写单个的代码方便了,比起dev-c++它的调试功能更加的优秀。再加上它的颜值,我开始了vs code第一次的配置环境。作为一名小白,我开始配置环境的时候遇到了很多坑,我这篇博客主要写的就是我遇到的一些坑,希望可以给一些像我一样的同学一些帮助。如果是只想看如何配置的环境同学可以看这个链接https://www.jianshu.com/p/1b8062a36376

 开始配置环境的准备工作

    1. 安装Visual Studio Code 及安装 C/C++

      最开始的时候我们需要下载Visual Studio Code,这是最最基础的部分。建议大家到官网上下载。

      

      根据自己的电脑选择适合自己的版本进行安装

      安装好后在扩展目录中选择“C/C++”进行安装    p.s.   2处是汉化自行选择安装

      

      

    2. 安装和配置MinGW

      下载安装:

       方法1:官网下载

        链接: http://mingw-w64.org/doku.php/download

       方法2:云盘下载

        链接: https://pan.baidu.com/s/1ZmjQUf5QcBbeHCi7mIrYxg 提取码: edc5

       有下载dev-c++的同学可以不用下载MinGW

    开始我是在b站上看教程,介于本人当时没有找到资源就只能去官网上下载。下载速度实在感人。最让人感动的是安装包下好了,居然安装不了。(好像是被封了的原因)我TM要疯。由于c++需要用到MinGW环境下的gcc等编译器,我再次开始找MinGW的资源。由于本人找资源的能力实在有限,浪费了很多时间。只是我的第一个坑。后来我突然想到之前用的dev-c++,想着为什么dev-c++不用安装MinGW,会不会它把所有都打包好了?果然最后我在dev-cpp的目录下找到了它。

 
                                 

    之所以会有这个坑说到底还是自己查找相关资源的能力欠缺,有待加强。同时对百度的排序算法我也是醉了,找到的教程对我这种小白太不友好了。

       3.配置mingw-w64环境变量

          找到 bin 目录

 
                        

    bin目录

    在桌面找到我的电脑图标->右键->属性->高级系统设置->选择“高级”选项->选择下面“环境变量”->在系统变量,在path中新增安装mingw-w64的路径:盘符:你的安装路径\mingw64\bin;

      

         

          4. 修改VSCode调试配置文件

         vs  code需要建立一个文件夹作为工作台,以后写的代码都保存在该文件夹下

         1.建立文件夹作为工作台   如cpp 文件夹

         2. 在cpp文件夹下建立   .vscode   文件夹

         3. 在cpp文件夹下建立 build 文件夹

         4. 在.vscode 文件夹下新建三个配置文件

c_cpp_properties.json


{
    "configurations": [
        {
            "name": "Mac",
            "includePath": [
                "/usr/include",
                "/usr/local/include",
                "${workspaceFolder}"
            ],
            "defines": [],
            "intelliSenseMode": "clang-x64",
            "browse": {
                "path": [
                    "/usr/include",
                    "/usr/local/include",
                    "${workspaceFolder}"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            },
            "macFrameworkPath": [
                "/System/Library/Frameworks",
                "/Library/Frameworks"
            ],
            "compilerPath": "E:\\MinGW\\bin\\gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17"
        },
        {
            "name": "Linux",
            "includePath": [
                "/usr/include",
                "/usr/local/include",
                "${workspaceFolder}"
            ],
            "defines": [],
            "intelliSenseMode": "clang-x64",
            "browse": {
                "path": [
                    "/usr/include",
                    "/usr/local/include",
                    "${workspaceFolder}"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            },
            "compilerPath": "E:\\MinGW\\bin\\gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17"
        },
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "E:\\MinGW\\bin\\gcc.exe",
            "intelliSenseMode": "clang-x64",
            "browse": {
                "path": [
                    "${workspaceFolder}"
                ],
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": ""
            },
            "cStandard": "c11",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}
 

launch.json

// Available variables which can be used inside of strings.
// ${workspaceRoot}: the root folder of the team
// ${file}: the current opened file
// ${fileBasename}: the current opened file's basename
// ${fileDirname}: the current opened file's dirname
// ${fileExtname}: the current opened file's extension
// ${cwd}: the current working directory of the spawned process {
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"preLaunchTask": "build",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/build/${fileBasenameNoExtension}.exe",//将进行调试的项目
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "E:/MinGW64/bin/gdb.exe", // GDB的路径,注意替换成自己的路径
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}]
}

tasks.json

// Available variables which can be used inside of strings.
// ${workspaceRoot}: the root folder of the team
// ${file}: the current opened file
// ${fileBasename}: the current opened file's basename
// ${fileDirname}: the current opened file's dirname
// ${fileExtname}: the current opened file's extension
// ${cwd}: the current working directory of the spawned process {
"version": "2.0.0",
"tasks": [
{
"label": "build",
"type": "shell",
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
},
"windows": {
"command": "g++",
"args": [
"-ggdb",
"\"${file}\"",
"--std=c++11",
"-o",
"${fileDirname}/build/${fileBasenameNoExtension}.exe\"", ]
} }
]
}

   注意记得将上边的路径改成自己MinGW的路径

    tasks.json文件中”args"中的参数"-o"是输出exe文件,接下来的参数是输出的位置和文件名,如果该参数为空将输出   a.exe到cpp文件夹中

  • ${workspaceRoot} VS Code中打开的文件夹的路径
  • ${file} 当前打开的文件路径

  • ${fileDirname} 当前打开的文件的文件夹名

    如果是对这三个文件有感兴趣的同学可以参考vs  code 的官方文档    这里提供vs code的中文文档  的链接

  当初就是没有找到好的教程,不了解这三个文件的功能,还找不到现用的文件,导致对着官方文档一通乱打,一直配置不成功。心态崩了,但是倔强的我最后在b站上找到了配置好的三个文件

  

  希望可以给某些同学提供一些帮助

Visual Studio Code C / C++ 语言环境配置的历程的更多相关文章

  1. Windows下使用Visual Studio Code搭建Go语言环境

    1.安装GO语言   下载地址:    https://golang.org/dl/   Windows下直接运行安装GO语言即可.     安装成功.   安装完毕GO语言后,需要添加GOPATH环 ...

  2. 使用Visual Studio Code搭建TypeScript开发环境

    使用Visual Studio Code搭建TypeScript开发环境 1.TypeScript是干什么的 ? TypeScript是由微软Anders Hejlsberg(安德斯·海尔斯伯格,也是 ...

  3. Windows下visual studio code搭建golang开发环境

    Windows下visual studio code搭建golang开发环境 序幕 其实环境搭建没什么难的,但是遇到一些问题,主要是有些网站资源访问不了(如:golang.org),导致一些包无法安装 ...

  4. 使用Visual Studio Code搭建PHP调试环境

    1.需要安装的软件 Visual Studio Code. WAMP(包括Apache.MySQL.PHP.以及最关键的XDebug) 2.下载软件 Visual Studio Code,光看名字就知 ...

  5. Visual Studio Code 搭建Python开发环境

    1.下载Python https://www.python.org/downloads/windows/ 选择一个版本,目前2.0的源码比较多,我下载的2.7.12 2.配置环境变量 3.Visual ...

  6. macOS 下 Visual Studio Code(VSCODE)安装配置及应用

    Visual Studio Code 重新定义了 Code 编辑. 在任何操作系统上编辑和调试应用程序内置 Git 支持1000 种以上的扩展免费和开源 为什么使用VSCODE? 我们来看看以下功能: ...

  7. Visual Studio Code 设置中文语言版本

    设置方法有两种: 方法一1.选择扩展 搜索“Language”,在下列选项选择 Chinese (Simplified) Language Pack for Visual Studio Code安装, ...

  8. Visual Studio Code搭建Python开发环境方法总结

    更新:目前VSCode官方Python插件已经支持代码运行与调试,无需安装Code Runner插件. 1.下载安装Python,地址 https://www.python.org/downloads ...

  9. [Environment Build] 如何实现Visual Studio中的区域语言环境切换

    最开始学习C#这门语言的时候,英文能力不够好,安装的中文版本的Visual Studio,现在工作有段时间了,公司又是个外企,慢慢不习惯中文版本的了,于是产生了想切换语言的想法,网上搜索了下,下载了个 ...

  10. Visual Studio Code搭建python开发环境

    开发Python的环境有很多,原来已经在vs2013上面搭建好python的开发环境了,但是vs2013每次启动都占太多内存(太强大了吧),这下出了vs code,既轻量又酷炫,正好拿来试一试开发py ...

随机推荐

  1. js 定时器(setInterval)

    js 定时器 分类 编程技术 js 定时器有以下两个方法: setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式.方法会不停地调用函数,直到 clearInterval() ...

  2. PHP 视频源文件加密方案

    先说下原理:因为视频是付费的,肯定需要作视频加密处理. 加密可实现的方式:修改视频字节流,只能替换字节流,例如头100-1024字节进行加密,源文件就无法打开了. 下面上代码吧,加解密是 openss ...

  3. JavaScript中的防抖与节流-图文版

    01.防抖还是节流 防抖 与 节流 目的都是避免一定时间内,大量重复的操作造成的性能损耗.因此原理也类似,都是阻止过多的事件执行,只保留一部分来执行.适用场景略有不同,也有交叉,动手练习一遍就懂了. ...

  4. linux挖矿处置

    挖矿的类型 主动挖矿:用户在个人电脑或服务器使用挖矿程序进行CPU,GPU计算,获取虚拟货币. 被动挖矿:挖矿病毒通过系统漏洞,恶意程序,弱口令等方式入侵服务器,设备感染挖矿病毒后会开始挖掘虚拟货币. ...

  5. Python免杀过360

    本文章仅供参考学习 作者:mantou 博客地址:https://www.cnblogs.com/mantou0/ 分离免杀 这个我就不多说了,效果确实不错,网上关于分离免杀的也有很多文章 不分离过3 ...

  6. ClickHouse数据副本引擎

    我的gitee地址:https://gitee.com/ddxygq/bigdata-technical-pai ,相关文章都放到这个仓库里了. 只有 MergeTree 系列里的表可支持副本: Re ...

  7. Linux基础守护进程、高级IO、进程间通信

    守护进程(Daemon) 前言 Linux常用于服务器,程序通常不运行在前台.运行于前台的进程和终端关联,一旦终端关闭,进程也随之退出.因为守护进程不和终端关联,因此它的标准输出和标准输入也无法工作, ...

  8. 使用time.Time数据类型获取时间报错

    报错类型:Error 1292: Incorrect datetime value: '0000-00-00' for column 'created_at' at row 1 在添加用户到数据库时, ...

  9. Apache Kafka 移除 ZK Proposals

    Zookeeper 和 KRaft 这里有一篇 Kafka 功能改进的 proposal 原文.要了解移除 ZK 的原因,可以仔细看看该文章.以下是对该文章的翻译. 动机 目前,Kafka 使用 Zo ...

  10. Java入门及环境搭建

    1.JAVA三大版本 JAVASE(标准版:桌面程序开发.控制台开发...) JAVAME(嵌入式:手机程序.小家电...) JAVAEE(企业级:web端.服务器开发...) 2.开发环境 JDK: ...