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

保姆级教程——VSCode如何在Mac上配置C++的运行环境

vscode官方下载:

点击官网链接,下载对应的pkg,安装打开;

https://code.visualstudio.com/

在这里插入图片描述

插件安装

点击箭头所指插件商店按钮,yyds;
下载C/C++ 插件;
![外链图片转存在这里插入图片描述

下载CodeLLDB插件;

!在这里插入图片描述
如果安装失败,可手动安装;
打开Github:https://github.com/vadimcn/vscode-lldb/releases;

如果是基于Intel的Mac选择codelldb-×86_64-darwin.vsix,

如果是基于Apple Silicon的Mac选择codelldb-aarch64-darwin.vsix

下载完成后,在扩展中点击从vsix中安装,即可,如下图所示;
在这里插入图片描述

运行调试

创建一个demo.cc文件

内容如下:

 #include<iostream>#include<string>#include<vector>using namespace std;int main(){// cout << "std C++11 :" << endl;// vector < int > nums = {1,2,3,4,5};// for (int i = 0; i < nums.size(); i++) {//     std::cout << nums[i] << " ";// }for (int i=0; i<5; i++){cout << i << endl;}return 0;}

安装CodeLLDB插件

在这里插入图片描述

运行调试

在这里插入图片描述
选择GDB/LLDB;
CodeLLDB是一个用于Visual Studio Code的插件,它提供了与LLDB调试器的集成。LLDB是一个功能强大的调试器,用于开发和调试C、C++和Objective-C程序。CodeLLDB插件可以在Visual Studio Code中提供类似于传统IDE的调试体验,包括断点设置、变量查看、堆栈追踪等功能。它还支持调试配置文件的编写和保存,以便在以后的调试会话中快速加载。通过CodeLLDB插件,开发人员可以更方便地在Visual Studio Code中进行C、C++和Objective-C代码的调试工作。

选择g++编译器

在这里插入图片描述

g++编译器是GNU Compiler Collection的一部分,它是一个用于编译C++程序的编译器。g++编译器支持C++11、C++14、C++17和C++20等版本的标准,并提供了对C++语言特性的广泛支持。使用g++编译器可以将C++源代码编译为可执行文件,以便在计算机上运行。g++编译器还提供了许多编译选项和参数,可以用于控制编译过程、优化代码、生成调试信息等。通过g++编译器,开发人员可以将C++代码转化为可执行文件,并进行测试、调试和部署;

输出

如果没问题,会正常输出:
在这里插入图片描述

打开代码注释,运行报错;
原因是目前的编译不支持C++11及以后的标准;

解决问题

打开.vscode文件夹下的task.json;
添加两行参数:
“-std=c++17”,
“-stdlib=libc++”,
如下图所示
在这里插入图片描述

这里对task.json做个简短的说明:
Visual Studio Code中的task.json文件用于定义和配置任务(Task)。任务是执行特定操作的命令,例如编译代码、运行测试等。您可以按照以下步骤找到和配置task.json文件:

  1. 打开您的项目文件夹。
  2. 导航到.vscode文件夹。
  3. .vscode文件夹中,您将找到名为tasks.json的文件。

如果您在项目中找不到.vscode文件夹或tasks.json文件,那么可能还没有创建或配置任务。您可以按照以下步骤创建和配置tasks.json文件:

  1. 在Visual Studio Code中,打开您的项目文件夹。
  2. 点击菜单栏中的"终端"选项,然后选择"运行任务"。
  3. 在弹出的菜单中,选择"配置任务",然后选择"创建 tasks.json 文件"。
  4. 此时将自动生成一个基本的tasks.json文件,并打开它以进行编辑。
  5. 根据您的需求和项目配置,修改tasks.json文件中的相关设置。
  6. 保存并关闭tasks.json文件。

请注意,上述步骤仅适用于使用Visual Studio Code作为代码编辑器和构建工具的情况。如果您使用其他编辑器或IDE,配置任务的步骤可能会有所不同。

c++11输出

正常输出如下:
在这里插入图片描述

使用插件Code Runner(可选)

插件简介:
Code Runner插件可以在编辑器中直接运行代码,支持多种编程语言,包括C、C++、Java、Python等。使用Code Runner插件,您可以选择要运行的代码片段或整个文件,然后通过点击运行按钮或使用快捷键来执行代码。该插件还提供了一些配置选项,如运行代码时的参数设置和运行环境的选择。Code Runner插件方便了您在编辑器中快速测试和运行代码,提高了开发效率。
安装插件,不要认错图标
在这里插入图片描述

运行

设置成插件运行,结果如下:
在这里插入图片描述

报错,同样的问题,配置不支持c++11;

配置插件

打开插件配置,点开对应的json:
在这里插入图片描述

将cpp的配置,添加 -std=c++11
“cpp”: “cd $dir && g++ $fileName -o $fileNameWithoutExt -std=c++11 && d i r dir dirfileNameWithoutExt”,
如下图:
在这里插入图片描述
运行结果ok

推荐插件

  • Chinese Language Pack :中文汉化包插件;
  • GitLens :Visual Studio Code中集成Git的插件;
  • Remote - SSH :Visual Studio Code的一个扩展,可以通过SSH连接到远程计算机并在其中进行开发;

有问题随时联系~
欢迎一键三连👍🏻

参考链接

https://zhuanlan.zhihu.com/p/486021900

彩蛋

更多干货内容请关注公众号SLearningAI:以AI算法与工程技术为核心的创作输出;
欢迎CSDN与公众号同步交流~

在这里插入图片描述

相关文章:

保姆级教程——VSCode如何在Mac上配置C++的运行环境

vscode官方下载&#xff1a; 点击官网链接&#xff0c;下载对应的pkg&#xff0c;安装打开&#xff1b; https://code.visualstudio.com/插件安装 点击箭头所指插件商店按钮&#xff0c;yyds&#xff1b; 下载C/C 插件&#xff1b; ![外链图片转存 下载CodeLLDB插件&#x…...

Java 操作FTP服务器进行下载文件

用Java去操作FTP服务器去做下载&#xff0c;本文章里面分为单个下载和批量下载&#xff0c;批量下载只不过多了一层循环&#xff0c;为了方便参考&#xff0c;我代码都贴出来了。 不管单个下载还是多个&#xff0c;一定要记得&#xff0c;远程服务器的直接写文件夹路径&#xf…...

物理机服务器应该注意的事

物理机服务器应该注意的事 1、选址 服务器是个非常重要的硬件产品&#xff0c;对机房的也是有一定的要求的&#xff0c;比如温度、安全性&#xff0c;噪音、电源稳定性等等问题都需要解决!但是不是每个人都会选择自己建立一个机房&#xff0c;毕竟各方面加起来的成本都太高。这…...

信息化发展24

信息技术的发展 1 &#xff09;在计算机软硬件方面&#xff0c; 计算机硬件技术将向超高速、超小型、平行处理、智能化的方向发展&#xff0c; 计算机硬件设备的体积越来越小、速度越来越高、容量越来越大、功耗越来越低、可靠性越来越高。 2 &#xff09;计算机软件越来越丰富…...

Qt开发_调用OpenCV(3.4.7)设计完成人脸检测系统

一、前言 近年来,人脸识别技术得到了广泛的应用,它可以在各种场景中实现自动化的人脸检测和识别,例如安防监控、人脸解锁、人脸支付等。 该项目的目标是设计一个简单易用但功能强大的人脸检测系统,可以实时从摄像头采集视频,并对视频中的人脸进行准确的检测和框选。通过…...

Java 中 List 删除元素

fori循环 删除某个元素后&#xff0c;list的大小发生了变化&#xff0c;会导致遍历准确。 这种方式可以用在删除特定的一个元素时使用&#xff0c;但不适合循环删除多个元素时使用 增强for循环 删除元素后继续循环会报错误信息ConcurrentModificationException&#xff0c;但是…...

Redis:StringRedisTemplate简介

&#xff08;笔记总结自b站黑马程序员课程&#xff09; 为了在反序列化时知道对象的类型&#xff0c;JSON序列化器会将类的class类型写入json结果中&#xff0c;存入Redis&#xff0c;会带来额外的内存开销。 为了减少内存的消耗&#xff0c;我们可以采用手动序列化的方式&am…...

pytorch-神经网络-手写数字分类任务

Mnist分类任务&#xff1a; 网络基本构建与训练方法&#xff0c;常用函数解析 torch.nn.functional模块 nn.Module模块 读取Mnist数据集 会自动进行下载 %matplotlib inlinefrom pathlib import Path import requestsDATA_PATH Path("data") PATH DATA_PATH / &…...

【群智能算法改进】一种改进的鹈鹕优化算法 IPOA算法[1]【Matlab代码#57】

文章目录 【获取资源请见文章第5节&#xff1a;资源获取】1. 原始POA算法2. 改进后的IPOA算法2.1 Sine映射种群初始化2.2 融合改进的正余弦策略2.3 Levy飞行策略 3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节&#xff1a;资源获取】 1. 原始POA算法 此…...

C++初阶:C++入门

目录 一.iostream文件 二.命名空间 2.1.命名空间的定义 2.2.命名空间的使用 三.C的输入输出 四.缺省参数 4.1.缺省参数概念 4.2.缺省参数分类 4.3.缺省参数注意事项 4.4.缺省参数用途 五.函数重载 5.1.重载函数概念 5.2.C支持函数重载的原理--名字修饰(name Mangl…...

golang操作数据库--gorm框架、redis

目录 1.数据库相关操作(1)非orm框架①引入②初始化③增删改查 (2) io版orm框架 (推荐用这个)①引入②初始化③增删改查④gorm gen的使用 (3) jinzhu版orm框架①引入②初始化③增删改查 2.redis(1)引入(2)初始化①普通初始化②v8初始化③get/set示例 1.数据库相关操作 (1)非orm…...

10 种常用的字符串方法

10 种常用的字符串方法 1.concat() 字符串拼接 const str1 12345678;const str2 abcdefgh;const str3 -【】&#xff1b;‘;console.log(str1.concat(str2,str3))//12345678abcdefgh-【】&#xff1b;‘ 2.includes() 判断字符串中是否包含指定值&#xff0c;返回布尔值…...

CSDN每日一练 |『生命进化书』『订班服』『c++难题-大数加法』2023-09-06

CSDN每日一练 |『生命进化书』『订班服』『c++难题-大数加法』2023-09-06 一、题目名称:生命进化书二、题目名称:订班服三、题目名称:c++难题-大数加法一、题目名称:生命进化书 时间限制:1000ms内存限制:256M 题目描述: 小A有一本生命进化书,以一个树形结构记载了所有生…...

echarts饼图label自定义样式

生成的options {"tooltip": {"trigger": "item","axisPointer": {"type": "shadow"},"backgroundColor": "rgba(9, 24, 48, 0.5)","borderColor": "rgba(255,255,255,0.4)&q…...

Unity汉化一个插件 制作插件汉化工具

我是编程一个菜鸟&#xff0c;英语又不好&#xff0c;有的插件非常牛&#xff01;我想学一学&#xff0c;页面全是英文&#xff0c;完全不知所措&#xff0c;我该怎么办啊...尝试在Unity中汉化一个插件 效果&#xff1a; 思路&#xff1a; 如何在Unity中把一个自己喜欢的插件…...

从过滤器初识责任链设计模式

下面用的过滤器都是注解方式 可以使用非注解方式,就是去web.xml配置映射关系 上面程序的执行输出是 再加一个过滤器 下面来看一段程序 输出结果 和过滤器是否非常相识 但是上面这段程序存在的问题:在编译阶段已经完全确定了调用关系,如果你想改变他们的调用顺序或者继续添加一…...

Redis7安装配置

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; Java从入门到精通 ✨特色专栏&#xf…...

切分支解决切不走因为未合并的路径如何解决

改代码的时候改做分支了&#xff0c;本来是在另一个分支上面改代码&#xff0c;结果改到另一个放置上面&#xff0c;然后想着使用git stash进行保存&#xff0c;然后切到另外一个分支再pop&#xff0c;结果不行。 报这个错误&#xff0c;导致切不过去&#xff0c;因为我这边pop…...

自动化运维:Ansible之playbook基于ROLES部署LNMP平台

目录 一、理论 1.playbook剧本 2.ROLES角色 3.关系 4.Roles模块搭建LNMP架构 二、实验 1.Roles模块搭建LNMP架构 三、问题 1.剧本启动php报错语法问题 2.剧本启动mysql报错语法问题 3.剧本启动nginx开启失败 4.剧本安装php失败 5.使用yum时报错 6.rpm -Uvh https…...

SpringBoot整合MQ

1.创建工程并引入依赖 <!-- 添加rocketmq的启动器--><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.1.1</version></dependency>2.编写…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...

麒麟系统使用-进行.NET开发

文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的&#xff0c;如果需要进行.NET开发&#xff0c;则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET&#xff0c;所以要进…...

渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用

阻止除自定义标签之外的所有标签 先输入一些标签测试&#xff0c;说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时&#xff08;如通过点击或键盘导航&…...

PydanticAI快速入门示例

参考链接&#xff1a;https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...