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

mac电脑搭载c、c++环境(基于vs code)

 真香,还得是真香,用了一段Clion发现这玩意是真的内存杀手,mac电脑这种内存和window几乎全是1TB起步内存这比不了,Clion确实非常好用也很智能,但是出于无奈,只能好好熟悉一下vscode了,当然大家如果还是喜欢Clion的话也可以在评论区和笔者说一声,笔者可以出一篇基于mac电脑的Clion c、c++环境搭载,或者学习电气的同学使用mac对单片机开发有要求,也可以出基于Clion开发单片机,主要用到小蚂蚁(PlatformIO)和stm32CubeMX

注:如果是没有Linux的同学可以先简单的学习一下Linux的常用指令,目前阶段vs code对于新手还是没有这么友好的

Linux的常见指令和快捷键大全(含用法)持续更新_linux快捷指令-CSDN博客

一、什么是vscode

Visual Studio Code(VS Code) 是微软开发的一款免费、开源且跨平台的代码编辑器,适用于 Windows、macOS 和 Linux 系统。它结合了轻量级编辑器的快速启动与集成开发环境(IDE)的强大功能,成为全球开发者最常用的工具之一。

而在大家初学阶段学校或者哪些机构会推两种编辑器:DEV c++或者vs 2022,但是如果是mac用户的话就无法使用这两个IDE,那么大家就可以选择vs code

二、下载vs code

下载链接:​​​​​​vs code

 

 点击download跳转版本选择页面,大家选择mac os,点击后自动下载

安装完成后打开vs code,我这里是之前使用过所以是中文并且有历史文件,大家第一次下载是没有的

三、环境搭载

3.1  简略的界面介绍

首先大家看到最左边这一栏,会有几个图标,第一个就是我们的文件方面的,第二个是搜索;第三个是我们git的一个管理;第四个是run和debug,用于调试的;第五个就是我们的插件市场

3.2  安装中文插件

我们点击插件商城,输入chinese(官方的插件)后,找到我在图中框出的插件,点击安装

 安装后会提示重启,这时候点击Change Lanuage and Restart就能变成中文了

3.3在vs code 中使用clang

3.3.1 安装clang

mac os其实正常来说是自带clang的,但是不排除大家可能出于自己电脑的版本或者其他原因没有,那么我们就要重新下载一个

我们先检测一下有没有下载clang,打开终端输入:

clang --version

如果没有,输入这个命令 安装一下clang:

xcode-select --install

3.3.2  安装c/c++插件

还是和刚刚一样,打开插件商城,或者我们可以通过在扩展视图(⇧⌘X)中搜索“C++”来安装C/C++扩展。

个人推荐这三个都可以下载一下,来搭配第一个主要的插件来开发

再下载这两个插件

 

配置一下第一个插件:

 

 

 

 

如果大家想要把终端窗口弹出来可以下载这个插件

 

随后我们设置一下:

 

勾选一下这个选项:

 

随后配置一下功能:

搜索Debug Shortcut 

此功能能够大大方便我们进行调试操作

3.3.3 检验c/c++的编译

创建一个空文件夹,您可以在其中存储所有VS Code项目,然后创建一个子文件夹,导航到它,并通过主页面的文件这一栏(左边第一个)中打开VS Code:

这样我们就在vs code中打开了文件,这时候在此文件夹内新建一个文件

 

这样就可以创建一个c++文件,注意:vs code文件创建的时候要把后缀给打清楚

将这段代码复制到建立的文件中:

#include <iostream>
#include <vector>
#include <string>using namespace std;int main()
{vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};for (const string& word : msg){cout << word << " ";}cout << endl;
}

 

点击clang++这一栏

command+shift+B后运行生产任务,随后在终端输入     ./+可执行文件(不带后缀)

随后回车一下

 

这样你就完成了在vs code上的第一个c++代码 

四、了解tasks.json

VSCode上调试关键也是依赖一个配置文件的叫:launch.json

首次运行程序时,C++扩展会创建位于项目.vscode文件夹中的tasks.jsontasks.json存储构建配置。(command+shift+B后自动生成)

这是macOS上tasks.json文件的示例:

核心概念:VS Code 需要知道怎么“做饭”(编译程序)

  1. 你的源代码 (.cpp 文件) 是“食谱”:它告诉计算机你想做什么(程序)。

  2. 编译器 (比如 clang++) 是“厨师”:它负责把“食谱”(源代码)变成计算机能直接吃的“菜”(可执行程序)。

  3. VS Code 是“厨房总管”:它需要知道:

    • 请哪个“厨师”(用什么编译器,比如 /usr/bin/clang++)?

    • 给“厨师”哪些具体的“烹饪指令”(用什么参数,比如 -g 表示加调试信息)?

    • 用哪些“食材”(编译哪个文件,比如 ${file} 表示当前打开的文件)?

    • “做好的菜”放哪里、叫什么名字(输出的程序文件,比如 ${fileDirname}/${fileBasenameNoExtension})?

tasks.json 就是写给“厨房总管”VS Code的“厨师工作说明书”!

  • 它怎么来的? 当你第一次在 VS Code 里尝试运行或调试 C++ 程序时,C++ 扩展会自动在项目文件夹下的 .vscode 子文件夹里创建这个 tasks.json 文件。

  • 它有什么用? 它存储了如何把你的 C++ 代码编译成可运行程序的具体步骤和设置。每次你点 VS Code 的“播放”按钮(运行/调试)时,VS Code 就会去读这个文件,按照里面的指示去调用编译器干活。

{"tasks": [ // 这里定义了一个任务列表{"type": "cppbuild", // 任务类型:C++编译构建"label": "C/C++: clang++ build active file", // 任务的名字(给你看的,在列表里显示)"command": "/usr/bin/clang++", // 请哪位厨师?这里请的是 clang++ 编译器,它在 /usr/bin 目录下"args": [ // 给厨师的详细烹饪指令(命令行参数):"-fcolor-diagnostics", // 让错误信息带颜色(好看)"-fansi-escape-codes", // 支持颜色显示需要的代码"-g", // 重要!加入调试信息(这样你才能用调试器一步步看程序)"${file}", // 用什么食材?当前你在VS Code里打开的那个.cpp文件"-o", // 告诉厨师:下一个参数是“做好的菜”放哪、叫啥名"${fileDirname}/${fileBasenameNoExtension}" // 做好的菜放哪?放在当前打开文件所在的文件夹里,名字和当前打开的文件一样,但去掉.cpp后缀。比如当前打开 hello.cpp,输出就是 hello],"options": {"cwd": "${fileDirname}" // 厨师在哪工作?在当前打开文件所在的文件夹里开始干活},"problemMatcher": ["$gcc"], // 如果厨师(编译器)报告做菜出错(编译错误),让总管能看懂错误信息(用理解GCC/clang错误格式的工具)"group": {"kind": "build", // 这个任务是“构建”类型的任务"isDefault": true // 而且它是默认的构建任务!非常重要!这意味着你按“播放”按钮时,总管就自动用这个任务},"detail": "Task generated by Debugger." // 任务的详细描述(给你看的)}],"version": "2.0.0" // 说明书的版本
}
  • ${file}${fileDirname}${fileBasenameNoExtension} 这些都是 VS Code 的变量,会自动替换成实际值。比如你打开了 /Users/you/project/hello.cpp

    • ${file} -> /Users/you/project/hello.cpp

    • ${fileDirname} -> /Users/you/project

    • ${fileBasenameNoExtension} -> hello

  • -o 参数: 这是编译器用来指定输出文件名的关键参数。它后面的 ${fileDirname}/${fileBasenameNoExtension} 组合起来就是输出路径 /Users/you/project/hello

  • group 里的 "isDefault": true 这是最关键的设置之一!它告诉 VS Code:“这个任务就是当我按下那个‘播放’按钮时,你应该自动去执行的那个默认编译任务”。没有这个,播放按钮可能不知道该干什么。

  • 播放按钮依赖它: 一旦配置好 tasks.json (尤其是那个默认任务),以后你写代码,想运行时,直接点播放按钮就行。VS Code 会自动按照 tasks.json 里的指示去编译你的代码,然后运行生成的那个程序 (hello)。

以上这都是基于vs code官方文件来写的,其实我们只需要把内容改成这个就行(没有g的改成clang,不会的可以直接丢给AI):

{"tasks": [{"type": "cppbuild","label": "C/C++: g++ 生成活动文件","command": "/usr/bin/g++","args": ["-fcolor-diagnostics",      // 启用颜色诊断信息"-fansi-escape-codes",      // 启用ANSI转义码"-std=c++17",               // 使用C++17标准"-Wall",                    // 启用所有警告"-Wextra",                  // 启用额外的警告"-Wpedantic",               // 启用与标准C++一致的警告"-g",                       // 启用调试信息"${fileDirname}/*.cpp",      // 编译当前目录下的所有 .cc 文件"-o",                       // 指定输出文件"${fileDirname}/result.exe" // 输出可执行文件到当前目录下的result.exe],"options": {"cwd": "${fileDirname}"     // 设置工作目录为当前文件所在的目录},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "调试器生成的任务: g++ "}],"version": "2.0.0"
}

如果大家写了c文件或者cc文件,把 "${fileDirname}/*.cpp"改成 "${fileDirname}/*.c"或 "${fileDirname}/*.cc"

五、调试

调试的快捷键和VS系列的IDE是一样的,如:

F9 - 打断点/取消断点

F5 - 启动调试

F11 - 逐语句调试

F10 - 逐过程调试

VS调试技巧:

https://www.bilibili.com/video/BV1oi4y1g7CF/?p=28

https://www.bilibili.com/video/BV1oi4y1g7CF/?p=29

http://www.dtcms.com/a/294492.html

相关文章:

  • 粗大误差智能滤除:基于格拉布斯准则与机器学习的数据清洗体系​
  • 【MySQL】MySQL 索引详解
  • 【数据结构】线性表概括
  • 野指针和内存泄漏是什么?
  • 基于YOLOv5+pyQT6的目标检测系统通用项目模板
  • React中的antd的表格使用方法
  • HDFS写性能优化技巧详解:从理论到实践
  • HBase新手入门
  • kafka动态配置详解
  • Tile级原语与自动推理机制融合,TileAI社区发起人深度剖析TileLang核心技术与优势
  • 小白做投资测算,如何快速上手?
  • Hot100题解
  • iOS 抓包工具有哪些?2025实用指南与场景推荐
  • Docker 基础概念
  • 开源的语音合成大模型-Cosyvoice使用介绍
  • UE5多人MOBA+GAS 29、创建一个等级UI
  • Effective Python 第15条 不要过分依赖给字典添加条目时所用的顺序
  • Kafka的介绍
  • Linux 或者 Ubuntu 离线安装 ollama
  • windows 11 下git软件提交正常,idea git提交总提示需要token
  • Java设计模式-备忘录模式
  • 前缀和经典问题整理
  • 扫描电镜与透射电镜联用表征形貌与元素组成-测试GO
  • C语言(20250723)
  • Zookeeper基本功能和应用场景
  • Zookeeper学习专栏(八):使用高级客户端库Apache Curator
  • 【数据结构初阶】--树和二叉树先导篇
  • spring的value注解
  • 使用Qt下QAudioOutput播放声音
  • Google DeepMind发布MoR架构:50%参数超越传统Transformer,推理速度提升2倍