详解VSCode中C++工程配置

news2025/1/14 18:32:02

安装MinGW-w64及环境变量配置

下载MinGW-w64

可以通过官网直接进行下载在线安装包,然后在本地进行安装即可(但是基本都会由于网络超时等各种原因终止)。

因此这里建议直接下载 `MinGW-w64` 库解压,然后在系统中指定环境变量即可。

  •  `MinGW-w64` 库下载链接:

https://udomain.dl.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-win32/seh/x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z

  • 解压缩

x86_64-8.1.0-release-win32-seh-rt_v6-rev0 直接解压到到当前文件即可,解压缩后会出现如下图所示的文件夹`mingw64`。

配置环境变量

win10系统中环境变量配置步骤:

  • 在系统属性页面点击环境变量
  • 在系统变量模块出找到Path,点击编辑按钮(如下如所示);
  • 在编辑环境变量页面添加mingw64的bin目录(如:D:\MingW\installing\mingw64\bin, 具体根据自己的安装目录修改)。

 

 

 至此,环境变量已经设置成功,可以通过如下步骤验证是否已经设置成功。

  • 打开CMD终端,输入 gcc -v 查看安装的版本等信息(下图最后一行显示的则是版本号,这里是 gcc version 8.1.0 版本)。
  • 如果可以成功走的这一步说明 MinGW-w64 以完全安装成功。

VSCode配置C++工作空间

这里需要已经下载并成功安装了 VSCode 软件(官网直接下载即可),同时安装了 C/C++ 相应的控件(百度搜索有很多的详细教程,这里不再赘述)。

创建目录结构

  • 创建 .vscode 目录,用于放置相应的配置文件;
  • 创建 cpp_sources 目录,用于放置编写的cpp代码;
  • 创建 build 目录,用于放置生成的 .exe 文件,当然也可以不用建该目录,直接和代码放在同一个文件夹也是可以的。

 

编写配置文件

首先在 .vscode 目录下新建文件 c_cpp_properties.json, launch.json, tasks.json。如下如所示:

编写 c_cpp_properties.json

在这里首先需要查看自己的 mingw 以及相应库的路径。

在CMD终端,输入命令 “ gcc -v -E -x c++ - ”,具体如下图所示。

这里需要的信息为上图中红色矩形框中信息,将其复制。然后替换 c_cpp_properties.json 文件中的“includePath” 和 “Path”中的信息。其他信息貌似不用作任何修改,然后保存即可。

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [        
                "${workspaceRoot}",
                "D:/MingW/installing/mingw64/include/*",
                "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
                "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
                "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
                "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
                "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
                "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "__GNUC__=6",
                "__cdecl=__attribute__((__cdecl__))"
            ],
            "intelliSenseMode": "msvc-x64",
            "browse": {
                "limitSymbolsToIncludedHeaders": true,
                "databaseFilename": "",
                "path": [
                    "${workspaceRoot}",
                    "D:/MingW/installing/mingw64/include/**",
                    "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
                    "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
                    "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward",
                    "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include",
                    "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed",
                    "D:/MingW/installing/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"
                ]
            }
        }
    ],
    "version": 4
}

编写 launch.json

这里对于参数 "miDebuggerPath": "D:/MingW/installing/mingw64/bin/gdb.exe" 修改根据自己的目录进行修改。

参数 "program": "${workspaceFolder}/build/${fileBasenameNoExtension}.exe" 也需要根据自己的喜欢设置,用来保存可执行文件的路径。

其他的如果按照我的配置进行,应该不用修改。

{  
   "version": "0.2.0",  
   "configurations": [  
       {  
           "name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示  
           "type": "cppdbg",       // 配置类型,这里只能为cppdbg  
           "request": "launch",    // 请求配置类型,可以为launch(启动)或attach(附加)  
           "program": "${workspaceFolder}/build/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径  
           "args": [],             // 程序调试时传递给程序的命令行参数,一般设为空即可  
           "stopAtEntry": false,   // 设为true时程序将暂停在程序入口处,一般设置为false  
           "cwd": "${workspaceFolder}", // 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录  
           "environment": [],  
           "externalConsole": false, // 调试时是否显示控制台窗口,一般设置为true显示控制台  
           "MIMode": "gdb",  
           "miDebuggerPath": "D:/MingW/installing/mingw64/bin/gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应  
           "preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc  
           "setupCommands": [  
               {   
           "description": "Enable pretty-printing for gdb",  
                   "text": "-enable-pretty-printing",  
                   "ignoreFailures": true  
               }  
           ]  
       }  
   ]  
}

编写 tasks.json

这里需要确认可执行文件的输出路劲是否正确,其他参数可以不做修改。

{
    "version": "2.0.0",
    "command": "g++",
    "args": [
        "-g",
        "${file}",
        "-o",
        "${workspaceFolder}/build/${fileBasenameNoExtension}.exe"
    ], // 编译命令参数
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": [
            "relative",
            "\\"
        ],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
        }
    }
}

至此,VSCode 中的配置也设置完成,下面可以通过简单的测试用例来试验。

测试编译环境

在 cpp_resourses 文件夹下新建文件 header.cpp 文件,任意编写几行简单的c++代码,如下所示:

点击下图右上角的 debug 选项,然后选择 (gdb) Launch ,可以看到代码开始编译。

 最后在终端可以看到打印的结果。

在这里,基于 VSCode 的 C++ 编译环境就完全配置好了,可以开心的码代码了。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/10584.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

低资源场景下的命名实体识别

Overview 低资源下的命名实体识别主要分为两个方面,一种是in-domain下的N-way-K-shot类型的少样本,一种是cross-domain下现在资源丰富的sourc-domain上进行微调,之后再迁移到低资源的target-domain进一步微调。 基于prompt的方法在少样本分…

C语言学习-数组(4)

目录 思维导图: 1. 一维数组的创建和初始化 1.1 数组的创建 1.2 数组的初始化 1.3 一维数组的使用 1.4 一维数组在内存中的存储 2. 二维数组的创建和初始化 2.1 二维数组的创建 2.2 二维数组的初始化 2.3 二维数组的使用 2.4 二维数组在内存中的存…

C# async / await 的使用方法

目录 一、简介 二、异步等待返回结果 三、异步方法的返回类型 四、await foreach 五、Task.Delay 结束 一、简介 await 运算符暂停对其所属的 async 方法的求值,直到其操作数表示的异步操作完成。 异步操作完成后,await 运算符将返回操作的结果&a…

【Xilinx】Zynq\MPSoc\Versal不同速度等级下的ARM主频

【Xilinx】Zynq\MPSoc\Versal不同速度等级下的ARM主频一、Zynq(A9)二、MPSoC(A53R5)三、Versal(A72R5F)最近有很多人在选型的时候,问到ARM主频的问题,不知道去哪里找这个参数。 授人以鱼不如授人以渔,基本的通用方法是…

【面试题】 TypeScript 前端面试题 由浅到深

给大家推荐一个实用面试题库 1、前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 基本类型介绍 1.Boolean,Number,String 声明:类型 类型对应变量 let flag:boolean true let …

【现代密码学原理】——哈希函数(学习笔记)

📖 前言:我们在登录QQ有时会遇到密码忘记的问题,那么思考一下,为什么腾讯公司不直接把密码发还给用户而是要求设置新密码呢。其实,不保存密码,是为了更好地对密码保密,换言之,腾讯的…

力扣(LeetCode)106. 从中序与后序遍历序列构造二叉树(C++)

递归 如图,后序序列按照左右根遍历,所以根在最后。逆着后序遍历的顺序,按照根右左递归建树就可以复原这棵树。后序序列,可以确定根的位置 postrootpostrootpostroot 和根结点的值。我们在中序序列找到根结点的值,就确定…

《深度学习进阶 自然语言处理》第四章:Embedding层和负采样介绍

文章目录4.1 word2vec的改进一4.1.1 Embedding层4.2 word2vec的改进二4.2.1 中间层之后的计算问题4.2.2 从多分类到二分类4.2.3 负采样总结之前文章链接: 开篇介绍:《深度学习进阶 自然语言处理》书籍介绍 第一章:《深度学习进阶 自然语言处…

想知道有没有拍照转文字的软件?这3款工具职场人士必备

你们在工作上有没有遇到这种情况,就是领导突然甩一份纸质文件给你,并要求整理成电子版,供其他同事查阅。回想我当初刚踏入职场时,没有什么工作经验,只会对照着内容手动码字输出,但是太浪费时间了&#xff0…

湖北银行冲刺上市:不良率高于行业均值,有公司欠5亿元未能追回

撰稿|汤汤 来源|贝多财经 最近,湖北银行正式向A股递交申请材料,准备在上海证券交易所上市。 据贝多财经了解,湖北银行股份有限公司(下称“湖北银行”)于2022年11月4日在证监会预披露招股书,计划在上交所…

Azide-PEG-Aldehyde,N3-PEG-ALD,叠氮-PEG-醛基可用于新材料研究

化学试剂叠氮-聚乙二醇-醛基,其英文名为Azide-PEG-Aldehyde(N3-PEG-ALD),它所属分类为Aldehyde / Acetal PEG Azide PEG。 peg试剂的分子量均可定制,有:5000 N3-PEG-ALD、10000 叠氮-PEG-醛基、1000 N3-PE…

短视频社交|电影点播平台Springboot+vue+ElementUI前后端分离

作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助 收藏点赞不迷路 关注作者有好处 文末获取源…

SpringMVC 请求流程源码分析

三哥 内容来自【自学星球】 欢迎大家来了解我的星球,和星主(也就是我)一起学习 Java ,深入 Java 体系中的所有技术。我给自己定的时间是一年,无论结果如何,必定能给星球中的各位带来点东西。 想要了解更多&…

使用robot+selenium创建一个UI自动化测试用例

新建项目并安装robotframework pip install robotframework 在pycharm-插件,输入robot搜索插件 选择Robot Framework Language Server或者Hyper RobotFramework Support安装 新建test.robot文件编写测试用例test.robot robot用例文件通常包括4个头部分&#xf…

Substance Painter 的一些玩法笔记

Substance Painter 的一些玩法 1、模型边缘磨损效果: 参考连接:Substance Painter 后期添加法线贴图,处理边缘磨损!_哔哩哔哩_bilibili 使用方法: 1、导入要处理的模型文件 2、烘焙 模型贴图(主要是法线) 3、创建一个…

接口api 之Swagger 一次实战探索

今天我们来说说什么是Swagger? 就是把相关的信息存储在它定义的描述文件里面(yml或json格式),再通过维护这个描述文件可以去更新接口文档,以及生成各端代码。而Springfox-swagger,则可以通过扫描代码去生成这个描述文…

自学CFD:我在实习岗速成无人机设计和仿真的故事

一、写在前面 大家好,我叫Jack(硕士在读),目前在企业实践学习。 作为一名门外汉,初识计算流体力学,经历了盲目无措、乱做一气,查资料找经验毫无进展,直到从B站遇到了Graychen老师。…

综合布线工程测试技术

一、测试的相关基础知识 综合布线工程测试内容主要包括三个方面:工作区到设备间的连通状况测试、主干线连通状况测试、跳线测试。 每项测试内容主要测试以下参数:信息传输速率、衰减、距离、接线图、近端串扰等。 1、接线图(Wire Map) 接线图是用来检验每根电缆末端…

24、四大函数式接口(有函数型接口和断定型接口(都是函数式接口))

四大函数式接口(有函数型接口和断定型接口(都是函数式接口)) 新时代程序员:lambda表达式,链式编程,函数式接口,Stream流式计算 函数式接口:只有一个抽象方法的接口&…

热门Java开发工具IDEA入门指南——从Eclipse迁移到IntelliJ IDEA(二)

IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能是非常强大的。 本文…