当前位置: 首页 > news >正文

vscode 与 C++

具体流程的话,官方文档里都有的:C++ programming with Visual Studio Code

  1. 浏览器下载一个mingw64,解压,配置环境变量
  2. vscode里安装c++相关的插件
  3. 没了

第一步只看文字,可能有点抽象,相关视频:

关于mingw64的下载:【【教程】VScode中配置C语言/C++运行环境】 【精准空降到 01:32】

下载以后环境变量的配置:【安装mingw】 【精准空降到 05:32】

流程大概就是如此,这里主要记录遇到的一些问题。 

文件的解压

mingw64,下载以后,是个7z格式的压缩包,需要解压。(解压前约40MB,解压后约400MB)

windows原生好像解压不了这种格式的,所以这里装了下这个:

7-Zip

假如中间出了错

比如,写的是cpp,但是第一次选编译器的时候误选了gcc而不是g++,就可能会报错。

第一次会弹窗,让选一个编译器

怎么改回来?

官方文档:编译器只有第一次才会弹窗,让手动选编译器,后面就默认照着第一次选的来了。

所以,弹窗选择编译器只存在于首次运行,第一次选错了,它就会把一个错误的值当成默认值,后面也不会再弹窗让选择了,只能将错就错……

这个时候,可以删掉.vscode文件夹。默认的设置就在这个文件夹的tasks.json里,把它删了,默认的就不存在了,再运行就会弹窗提示重新选择编译器了。

和tasks.json相关的配置错误,应该都能这么搞吧。

关于编译器的介绍

mingw64是什么的缩写?简单介绍一下

  • Mingw-w64是一个基于MinGW(Minimalist GNU for Windows)的跨平台开发环境,用于在Windows操作系统上构建和编译GNU软件。它提供了一个完整的GNU环境,包括C、C++、Fortran等语言的编译器、调试器、库文件等。
  • Mingw-w64中的"mingw"表示"Minimalist GNU for Windows",而"w64"则表示它支持64位Windows操作系统。与传统的MinGW相比,Mingw-w64具有更好的兼容性和可移植性,支持更多的Windows API函数,并且可以更好地处理64位代码的编译和调试。
  • Mingw-w64的开发始于2000年,经过多年的发展和改进,已经成为一个稳定且广泛使用的跨平台开发工具。它为开发者提供了一个在Windows上构建和调试GNU软件的环境,使得开发者可以在Windows平台上进行开发,并生成可在多种操作系统上运行的可执行文件。

什么是gnu软件?

  • GNU软件是由自由软件基金会(FSF)开发和维护的一个操作系统,其名称来源于GNU(GNU's Not Unix)的缩写。GNU软件是一种与Unix系统兼容的类Unix操作系统,由一系列软件应用程序、开发人员工具以及一个分配资源并和硬件或内核通信的程序组成。
  • GNU软件包括许多知名的大型软件,如GNU Compiler Collection(GCC)、GNU Debugger(GDB)、GNU Binutils、GNU Hello等。其中,GCC是GNU系统的主要编译器,支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada等。GDB是GNU系统的调试器,可以用于在程序运行时进行调试。GNU Binutils是一组二进制工具,包括ld、as、objcopy等,用于处理二进制文件。
  • GNU软件的一个重要特点是其自由软件许可证,这意味着用户可以自由地获取、使用、修改和分发该软件的源代码。此外,GNU软件还强调用户的自由和权利,包括对软件的支配权和使用权,以及保护用户的隐私和自由。
  • 总之,GNU软件是一个基于Unix开发设计,并与Unix兼容的类Unix操作系统,由自由软件基金会开发和维护。它包括许多重要的软件应用程序和开发工具,并且强调用户的自由和权利。

mingw64,gcc,g++,gdb,有什么关系?

  • mingw64:这是一款可以在Windows操作系统上编译和运行GNU程序的工具,它提供了一个GNU环境,包括GCC(GNU Compiler Collection)编译器、GNU binutils工具、GNU Hello程序等。mingw64可以让你在Windows上编译运行GNU程序,也可以让你的程序调用Windows的API函数。
  • gcc:GNU Compiler Collection(GCC)是一款自由软件,它提供了编译、汇编、链接等程序语言开发所需的各种工具。GCC支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada等。它是一款非常强大的编译器,可以编译各种类型的程序,包括桌面应用程序、服务器程序、嵌入式程序等。
  • g++:GNU g++是GCC编译器的一个C++编译器,它可以将C++源代码编译成可执行程序。g++支持C++语言的各种特性,包括类、模板、异常处理等。它是C++程序员的必备工具之一。
  • gdb:GNU Debugger(GDB)是一款源代码级别的调试器,它支持多种编程语言,包括C、C++、Objective-C、Fortran等。GDB可以让你在程序运行时进行调试,包括设置断点、单步执行、查看变量值等操作。它是程序开发人员调试程序的重要工具之一。

如何理解task.json里的args?

这个args,是从哪里冒出来的? ——结合命令行,就好理解了

命令行与参数

三分钟上手g++编译器_哔哩哔哩_bilibili

这里,命令行的-o参数的值设置的是test 

这个例子,也类似:

MinGW-w64 C/C++编译器下载和安装_mingw64_石凌风SLF的博客-CSDN博客

设置-o参数的值为mainCPPout

参数与json

vscode里,图形界面里点一下run就运行了,没用到命令行。怎么做的?命令行套壳。 比如给ffmpeg套图形界面的壳。

所以,命令行只是被套了个壳,看不见了,并不是不存在了,所以,命令行参数还是要指定的。

在哪里指定?在vscode的json文件里:

{"tasks": [{"type": "cppbuild","label": "C/C++: g++.exe 生成活动文件","command": "D:\\software\\mingw64\\bin\\g++.exe","args": [ // arguments,参数"-fdiagnostics-color=always","-g","${file}","-o",    // 参数名,表示这里是要给-o参数赋值,而不是-g参数或者其他的什么参数"${fileDirname}\\${fileBasenameNoExtension}.exe", // 想要给-o参数赋的具体值],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务。"}],"version": "2.0.0"
}

后记

个人理解,仅供参考

相关文章:

vscode 与 C++

序 具体流程的话,官方文档里都有的:C programming with Visual Studio Code 浏览器下载一个mingw64,解压,配置环境变量vscode里安装c相关的插件没了 第一步只看文字,可能有点抽象,相关视频: …...

水果flstudio好用吗?中文版FL21最新版本如何下载

FL Studio21版是一款功能强大的音乐制作软件,广泛应用于电子音乐、流行音乐、电影配乐等领域。它提供了丰富多样的音频合成和编辑工具,使音乐制作变得更加灵活多样。无论是初学者还是专业音乐制作人,都可以通过直观的界面和丰富的音频特效来实…...

PHP is_array()函数详解,PHP判断是否为数组

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 is_array 一、基本使用二、空数组三、同时判断多个…...

面试题-React(三):什么是JSX?它与常规JavaScript有什么不同?

在React的世界中,JSX是一项引人注目的技术,它允许开发者在JavaScript中嵌套类似HTML的标签,用于描述UI组件的结构。本篇博客将通过丰富的代码示例,深入探索JSX语法,解析其在React中的用法和优势。 一、JSX基础语法 在…...

纯前端实现图片上传七牛云

首先安装下依赖: npm install qiniu-js crypto-js 然后封装一下 uploaderHelper.ts import * as qiniu from qiniu-js; // ts-ignore import CryptoJS from crypto-js// 请求接口上传图片 export function uploadFile(file: File) {const uptoken getToken(你的…...

win10+wsl2+Ubuntu20.2+Pycharm+WSL解释器

目的:创建一个ubuntu系统下的python解释器,作为win平台下的pycharm的解释器。 这样做的好处是可以直接在win系统里操作文件,相比于linux方便一点,而且也不用对wsl的子系统进行迁移。 一、安装前准备 1. 设置-Windows更新-window…...

EL与JSTL

目录 EL EL语法 EL运算符 JSTL JSTL标签分类 JSP脚本:代码结构混乱、脚本与HTML 混合易出错、代码不易维护。 EL表达式:优化程序代码,增加程序可读性。 EL EL语法 EL表达式 ${ EL 表达式 } EL操作符 操作符“ . ” 获取对象的属性&a…...

【Linux】动态库和静态库

动态库和静态库 软链接硬链接硬链接要注意 自定义实现一个静态库(.a)解决、使用方法静态库的内部加载过程 自定义实现一个动态库(.so)动态库加载过程 静态库和动态库的特点 软链接 命令:ln -s 源文件名 目标文件名 软链接是独立连接文件的,他…...

R语言:联合多指标的ROC曲线

# 加载数据和包rm(list=ls())library(pROC)library(ggplot2)setwd("C:/Users/syy/Desktop/MRI_lab/")data<- read.csv("test1.csv", header = T)data$Groups...

将一个树形结构的数据平铺成一个一维数组(vue3)

一、需求描述 由于自带组件库没有具体完善,无法实现像element-ui这种可以多选选择任意一级的选项,也就是说,选择父级的时候不会联动选择子级的全部 例如: 所以,才会出现【二、案例场景】类似的场景,可以用来多选 ,并可以实现单选父级而不关联子级,选择了将树状数据进…...

OSCS开源安全周报第 56 期:Apache Airflow Spark Provider 任意文件读取漏洞

本周安全态势综述 OSCS 社区共收录安全漏洞 3 个&#xff0c;公开漏洞值得关注的是 Apache NiFi 连接 URL 验证绕过漏洞(CVE-2023-40037)、PowerJob 未授权访问漏洞(CVE-2023-36106)、Apache Airflow Spark Provider 任意文件读取漏洞(CVE-2023-40272)。 针对 NPM 、PyPI 仓库…...

CleanMyMac2024永久版Mac清理工具

Mac电脑作为相对封闭的一个系统&#xff0c;它会中毒吗&#xff1f;如果有一天Mac电脑产生了疑似中毒或者遭到恶意不知名攻击的现象&#xff0c;那又应该如何从容应对呢&#xff1f;这些问题都是小编使用Mac系统一段时间后产生的疑惑&#xff0c;通过一番搜索研究&#xff0c;小…...

软考高级系统架构设计师(一)计算机硬件

【原文链接】软考高级系统架构设计师&#xff08;一&#xff09;计算机硬件 1.1 计算机硬件组成 1.1.1 计算机的基本硬件组成 运算器控制器存储器输入设备输出设备 1.1.2 中央处理单元&#xff08;CPU&#xff09; 中央处理单元&#xff08;CPU&#xff09;的组成 运算器…...

bat文件中自定义cmd命令;执行完退出命令提示符窗口

1. bat中启动cmd命令 start cmd /k " cmd中命令行里自定义的命令 " 2.编写规则 start cmd /k "命令1 & 命令2 & 命令3" (无论前面命令是否成功, 后面都会执行start cmd /k "命令1 && 命令2 && 命令3 " (仅…...

深度学习的经典算法的论文、解读和代码实现

文章目录 CNN网络的经典算法LeNet-5AlexNetVGGInceptionInception-v1(GoogLeNet)BN-Inception ResNetR-CNNR-CNNFast R-CNNFaster R-CNN YOLOYOLO v1YOLO v2YOLO v3YOLO v4 RNN的经典算法RNNGRULSTMEncoder-DecoderAttentionTransformer CNN网络的经典算法 LeNet-5 来源论文&…...

开源TTS+gtx1080+cuda11.7+conda+python3.9吊打百度TTS

一、简介 开源项目&#xff0c;文本提示的生成音频模型 https://github.com/suno-ai/bark Bark是由Suno创建的基于变换器的文本到音频模型。Bark可以生成极为逼真的多语种演讲以及其他音频 - 包括音乐、背景噪音和简单的声音效果。该模型还可以产生非言语沟通&#xff0c;如…...

【私有GPT】CHATGLM-6B部署教程

【私有GPT】CHATGLM-6B部署教程 CHATGLM-6B是什么&#xff1f; ChatGLM-6B是清华大学知识工程和数据挖掘小组&#xff08;Knowledge Engineering Group (KEG) & Data Mining at Tsinghua University&#xff09;发布的一个开源的对话机器人。根据官方介绍&#xff0c;这是…...

基于“R语言+遥感“水环境综合评价方法教程

详情点击链接&#xff1a;基于"R语言遥感"水环境综合评价方法教程 一&#xff1a;R语言 1.1 R语言特点&#xff08;R语言&#xff09; 1.2 安装R&#xff08;R语言&#xff09; 1.3 安装RStudio&#xff08;R语言&#xff09; &#xff08;1&#xff09;下载地址…...

To_Heart—题解——P6234 [eJOI2019] T形覆盖

link. 突然很想写这篇题解。虽然题目不算难。 考场只有30分是为什么呢&#xff1f;看来是我没有完全理解这道题目吧&#xff01; 首先很明显的转换是&#xff0c;把 T 型覆盖看成十字形&#xff0c;再考虑最后减去某一块的贡献。 然后然后直接往原图上面放十字形!对于每一个…...

[软件工具]精灵标注助手目标检测数据集格式转VOC或者yolo

有时候我们拿到一个数据集发现是xml文件格式如下&#xff1a; <?xml version"1.0" ?> <doc><path>C:\Users\Administrator\Desktop\test\000000000074.jpg</path><outputs><object><item><name>dog</name>…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

docker详细操作--未完待续

docker介绍 docker官网: Docker&#xff1a;加速容器应用程序开发 harbor官网&#xff1a;Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台&#xff0c;用于将应用程序及其依赖项&#xff08;如库、运行时环…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型&#xff08;Vision-Language Models, VLMs&#xff09;&#xff0c;为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展&#xff0c;机器人仍难以胜任复杂的长时程任务&#xff08;如家具装配&#xff09;&#xff0c;主要受限于人…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

TCP/IP 网络编程 | 服务端 客户端的封装

设计模式 文章目录 设计模式一、socket.h 接口&#xff08;interface&#xff09;二、socket.cpp 实现&#xff08;implementation&#xff09;三、server.cpp 使用封装&#xff08;main 函数&#xff09;四、client.cpp 使用封装&#xff08;main 函数&#xff09;五、退出方法…...