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

MacOS 环境下 VSCode 的 C++ 环境搭建

MacOS 环境下 VSCode 的 C++ 环境搭建

编译器安装

编译器可以选择 Clang 或者 GCC,在 MacOS 上 Clang 的安装更为简单一些。

Clang(推荐)

打开终端输入命令,

clang -v
查看是否已经安装。

如果已经安装,会输出类似于如下的信息:

Apple clang version 14.0.0 (clang-1400.0.29.202) Target: arm64-apple-darwin22.2.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

如果没有安装,则输入命令Xcode-select --install进行安装。

GCC

首先需要安装 brew,安装方法见官网,如果国内访问速度比较慢,可以自行搜索 brew 国内镜像。

然后输入命令brew install gcc进行安装。

插件安装

在 VSCode 中安装如下的三个插件

C/C++:提供了编辑的代码智能提示(IntelliSense)和调试(debugging) 功能;
CodeLLDB:提供了更加强力的调试支持;
Code Runner:更方便地运行代码(非调试);
配置文件生成

c_cpp_properties.json

c_cpp_properties.json 中包含了编译器路径、头文件路径等等的设置信息,这些信息主要用于编辑的代码智能提示(IntelliSense)。

在 VSCode 中按下 ⇧⌘P,输入命令C/C++: Edit Configurations (UI)打开 C/C++ 的配置页面。根据 CPU 架构(一般是 Intel 或 Apple Silicon) 和编译器(Clang 或 GCC) 的不同,我们需要在配置页面中设置 编译器路径 IntelliSense 模式 这两个选项。

编译器路径

从下拉框中选择 Clang/GCC 可执行文件对应的路径。

Clang 的路径示例

/usr/bin/clang 或者 /usr/bin/clang++

GCC 的路径示例

/opt/homebrew/Cellar/gcc/12.2.0/bin/g++

IntelliSense 模式

CPU – 编译器 – 选项
Intel – Clang – macos-clang-x64
Intel – GCC – macos-gcc-x64
Apple Silicon – Clang – macos-clang-arm64
Apple Silicon – GCC – macos-gcc-arm64

在 C/C++ 的配置页面设置好之后,VSCode 会为我们自动生成c_cpp_properties.json 文件。

c_cpp_properties.json 的示例

{"configurations": [{"name": "Mac","includePath": ["${workspaceFolder}/**"],"defines": [],"macFrameworkPath": ["/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"],"compilerPath": "/usr/bin/clang","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "macos-clang-arm64"}],"version": 4
}

tasks.json

在 tasks.json 中,我们会定义一个编译可执行文件的任务,

我们可以通过 VSCode 来自动生成这个文件,只要在 C++ 源文件中按下 F5,选择对应的选项(Clang 选择编译器 Clang++,GCC 选择编译器 G++),就会生成这个文件。

tasks.json 的示例

{"version": "2.0.0","tasks": [{"type": "cppbuild","label": "生成活动文件","command": "/usr/bin/clang++","args": ["-fcolor-diagnostics","-fansi-escape-codes","-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"options": {"cwd": "${fileDirname}"},"problemMatcher": ["$gcc"],"group": {"kind": "build","isDefault": true},"detail": "编译器: /usr/bin/clang++"}]
}

launch.json

在 launch.json 中我们将设置调试相关的内容。

在之前生成 tasks.json 的同时,也会自动生成这个文件。这个文件的 type 一般会设置为 cppdbg。为了使用 CodeLLDB,建议将其改成 lldb

launch.json 的示例(cppdbg)

{"version": "0.2.0","configurations": [{"name": "生成和调试活动文件","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}","args": [],"stopAtEntry": true,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true, // 推荐设置为 true,否则在调试过程中无法接受输入"MIMode": "lldb","preLaunchTask": "生成活动文件"}]
}

launch.json 的示例(lldb)

{"version": "0.2.0","configurations": [{"name": "生成和调试活动文件","type": "lldb","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}","args": [],"cwd": "${workspaceFolder}","preLaunchTask": "生成活动文件"}]
}

⚠️注意:请确保launch.json 中 preLaunchTask 的值和 tasks.json 中的 label 保持一致。

http://www.lryc.cn/news/468652.html

相关文章:

  • WPF样式
  • Vue Router 如何配置 404 页面?
  • 【C++:智能指针】
  • onlyoffice docker启用jwt并生成jwt
  • 希尔贝壳受邀参加首届“数据标注产业大会暨供需对接会”
  • 35.第二阶段x86游戏实战2-C++遍历技能
  • Jenkins发布vue项目,版本不一致导致build错误
  • vue3使用webSocket
  • 957种卫星参数文档的分享下载
  • 负载均衡详解:背景、实现技术、作用范围与常用算法
  • CCAA:产品认证基础3(产品认证方案)
  • go语言中的Scan()和Scanln()输入函数
  • UML外卖系统报告(包含具体需求分析)
  • net Core Data Protection 数据保护 加密 编码 哈希 FromServices
  • 4K手机壁纸之动漫系列
  • 关于eclipse的workspace
  • Vue引入高德地图自定义信息窗体绑定点击事件无效解决方案
  • 私域朋友圈运营
  • 【Vue】word / excel / ppt / pdf / 视频(mp4,mov) 预览
  • 如何加密电脑磁盘?电脑本地磁盘加密方法介绍
  • 1688、淘宝、京东搜索商品聚合接口技术实现与代码示例
  • 视频智能分析平台LiteAIServer烟火识别软件引领烟火检测与识别的智能新纪元
  • VUE前端按钮添加遮罩层
  • 列出机器学习方向的创新点
  • ffmpeg视频滤镜:腐蚀滤镜
  • react18中在列表项中如何使用useRef来获取每项的dom对象
  • java前后端项目问题总结
  • Qt设置浏览器为父窗口,嵌入播放器窗口
  • 运行Vue项目报错ChunkLoadError: Loading chunk 0 failed.
  • 腾讯云上基于 Apache Pulsar 的大规模生产实践