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

news2025/1/19 23:11:40

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与公众号同步交流~

在这里插入图片描述

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

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

相关文章

命令执行漏洞(附例题)

一.原理 应用有时需要调用一些执行系统命令的函数&#xff0c;如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等&#xff0c;当用户能控制这些函数的参数时&#xff0c;就可以将恶意系统命令拼接到正常命令中&#xff0c;从而造成命令执行攻击。 二.利用条…

SpringMVC入门的注解、参数传递、返回值和页面跳转---超详细教学

前言&#xff1a; 欢迎阅读Spring MVC入门必读&#xff01;在这篇文章中&#xff0c;我们将探索这个令人兴奋的框架&#xff0c;它为您提供了一种高效、灵活且易于维护的方式来构建Web应用程序。通过使用Spring MVC&#xff0c;您将享受到以下好处&#xff1a;简洁的代码、强大…

鼠标键盘管理 ShareMouse for Mac最新

软件“ShareMouse”允许您通过单个鼠标和键盘控制多台计算机&#xff1a; 将鼠标移动到您想要控制的计算机的监视器上&#xff0c;指针会神奇地跳转到该计算机。任何鼠标和键盘输入都会传输到相应的计算机。 与网络KVM类似&#xff0c;ShareMouse通过本地LAN传输鼠标移动和点…

基于SpringBoot的班级管理系统【附源码】

基于SpringBootVue前后端分离的班级管理系统 可提供远程部署安装运行 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVueElementUI工具&#xff1a;IDEA/EcilpsemysqlNavicat 登陆界面 班级管理 学生管理 班干部管理 班级公告 班级活…

06-mq

1、消息队列有什么优点和缺点? 优点&#xff1a; 解耦、异步、削峰填谷。 缺点&#xff1a; 系统可用性降低 系统复杂性提高 一致性问题 2、常见消息队列的比较 3、Kafka的特性 1.消息持久化 2.高吞吐量 3.扩展性强&#xff08;动态&#xff09;4集群&#xff0b;4台集群…

Mysql--技术文档--B+树-数据结构的认知

阿丹解读&#xff1a; 之前的文章中写道了有关mysql底层索引&#xff0c;那么在数据量特别大的情况下。mysql采用了B来管理索引。和存储的数据。 Mysql--技术文档--索引-《索引为什么查找数据快&#xff1f;》-超底层详细说明索引_一单成的博客-CSDN博客 B树解读&#xff1a…

【综述】跨模态可信感知

文章目录 跨模态可信感知综述摘要引言跨协议通信模式PCP网络架构 跨模态可信感知跨模态可信感知的概念跨模态可信感知的热点研究场景目前存在的挑战可能改进的方案 参考文献 跨模态可信感知综述 摘要 随着人工智能相关理论和技术的崛起&#xff0c;通信和感知领域的研究引入了…

目前无法建立VS2013与Qt的连接???

因为下载组件的时候&#xff0c;没有哪个选项&#xff0c;还是没有MSVC2013

【云原生进阶之PaaS中间件】第一章Redis-1.5.1安装配置

1 Redis环境安装配置 在本节中&#xff0c;您将了解和学习Redis的环境安装设置。 1.1 在Ubuntu上安装Redis 要在Ubuntu上安装Redis&#xff0c;打开终端并键入以下命令 - [yiibaiubuntu:~]$ sudo apt-get update [yiibaiubuntu:~]$ sudo apt-get install redis-server 这将在…

教师必备 查分省时又省心

亲爱的老师们&#xff01;你是否也曾为每次发布成绩而烦恼&#xff1f;每次都要将整个成绩表发到群里&#xff0c;再一个个回答家长的查询问题&#xff0c;简直是一场噩梦&#xff01;但是&#xff0c;别担心&#xff0c;我给各位老师带来了最好的解决方案——易查分&#xff0…

【iVX】十五分钟制作一款小游戏,iVX真有怎么神?

个人主页&#xff1a;【&#x1f60a;个人主页】 新人博主&#xff0c;喜欢就关注一下呗~ 文章目录 前言iVX介绍初上手布置背景制作可移动物体总结&#xff08;完善步骤&#xff09; 前言 在上篇文章中&#xff0c;我向大家介绍了一种打破常规的编程方式——iVX&#xff0c;可…

每期一个小窍门: 一文助你理解火焰图

火焰图&#xff08;flame graph&#xff09;是性能分析的利器。本文介绍它的基本用法。 perf 命令 让我们从 perf 命令&#xff08;performance 的缩写&#xff09;讲起&#xff0c;它是 Linux 系统原生提供的性能分析工具&#xff0c;会返回 CPU 正在执行的函数名以及调用栈&…

Kafka3.0.0版本——文件清理策略

目录 一、文件清理策略1.1、文件清理策略的概述1.2、文件清理策略的官方文档1.3、日志超过了设置的时间如何处理1.3.1、delete日志删除&#xff08;将过期数据删除&#xff09;1.3.2、compact日志压缩 一、文件清理策略 1.1、文件清理策略的概述 Kafka 中默认的日志保存时间为…

sql:SQL优化知识点记录(十二)

&#xff08;1&#xff09;读锁案例讲解 加读锁和写锁 查看是否上锁&#xff1a;In_use&#xff1a;变成了1 读写锁对我们数据产生哪些影响&#xff1a; 读锁&#xff1a;是共享锁&#xff0c;其他线程可以查看&#xff1a; 加了读锁&#xff1a;session1不能修改自己&#xf…

JDK7多线程并发环境HashMap死循环infinite loop,CPU拉满100%,Java

JDK7多线程并发环境HashMap死循环infinite loop&#xff0c;CPU拉满100%&#xff0c;Java HashMap底层数据实现是数组链表&#xff0c;链表在哈希碰撞后装入新数据&#xff0c;像是一个桶。 HashMap在JDK7的实现中&#xff0c;并发环境存在死循环infinite loop问题。导致的结果…

Leetcode刷题笔记--Hot41-50

1--二叉树的层序遍历&#xff08;102&#xff09; 主要思路&#xff1a; 经典广度优先搜索&#xff0c;基于队列&#xff1b; 对于本题需要将同一层的节点放在一个数组中&#xff0c;因此遍历的时候需要用一个变量 nums 来记录当前层的节点数&#xff0c;即 nums 等于队列元素的…

Android高通 8.1 老化apk打开摄像头花屏问题

1、最近由于公司VR 3D系统要做双Camera老化测试apk&#xff0c;同时老化4小时需要轮询切换二个摄像头&#xff0c;保证后面camera标定精度数据更准确。 2、一开始我尝试用之前方案移植过去然后同时打开双摄像头 突然发现花屏 如下图所示 3、于是一第一时间想到是不是分辨率不兼…

个人信息保护专业人员认证(CCRC-PIPP)

数据已成为重要的生产要素&#xff0c;是国家基础性战略资源&#xff0c;个人信息是数据的核心和基础。保障公民个人信息权益&#xff0c;促进个人信息数据依法合理有效利用&#xff0c;已经成为政府和企业推动数字经济持续健康发展的首要任务。为促进个人信息保护领域人才队伍…

LeetCode127. 单词接龙

题目 力扣题目链接(opens new window) 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列&#xff1a; 序列中第一个单词是 beginWord 。序列中最后一个单词是 endWord 。每次转换只能改变一个字母。转换过程中的中间单词必须是字典 wo…

AJAX学习笔记8 跨域问题及解决方案

AJAX学习笔记7 AJAX实现省市联动_biubiubiu0706的博客-CSDN博客 跨域:指一个域名的网页去请求另外一个域名资源.比如百度页面去请求京东页面资源. 同源与不同源三要素:协议,域名,端口 协议一致,域名一致,端口一致.才算是同源.其他一律不同源 新建项目测试: 1.window.open();…