IDE 安装
2024-4-2
| 2024-9-2
0  |  Read Time 0 min
type
status
date
slug
summary
tags
category
icon
password

C++ IDE 对比

针对 macOS 上的 Apple M1 芯片,有几款流行的 C++ 集成开发环境(IDE)可供选择。以下是一些常见的 macOS 上适用于 Apple M1 芯片的 C++ IDE 的比较:
  1. Xcode
      • Xcode 是苹果官方提供的集成开发环境,支持多种编程语言,包括 C++。它提供了强大的调试器、图形化界面设计工具等功能。
      • 优点:原生支持 macOS 和 Apple M1 芯片,与系统集成度高,适合开发 macOS 和 iOS 应用。
      • 缺点:可能对于纯 C++ 开发来说功能过于庞大,学习曲线可能较陡。
  1. CLion
      • CLion 是由 JetBrains 开发的专门针对 C++ 开发的跨平台 IDE,支持 macOS 和 Apple M1 芯片。
      • 优点:提供智能代码补全、强大的静态分析工具、集成的调试器等功能,适合专业 C++ 开发人员。
      • 缺点:可能需要购买许可证,对于初学者来说可能有些复杂。
  1. Visual Studio Code(VS Code)
      • Visual Studio Code 是一个轻量级的跨平台代码编辑器,通过插件支持多种编程语言,包括 C++。
      • 优点:免费、灵活,社区支持丰富,可通过插件扩展功能,适合轻量级的 C++ 开发。
      • 缺点:可能需要安装额外的插件来支持 C++ 开发,相比专门的 IDE 功能可能略显不足。
  1. Eclipse CDT
      • Eclipse 是一个开源的跨平台 IDE,CDT 是 Eclipse 的 C/C++ 开发工具包,支持 macOS 和 Apple M1 芯片。
      • 优点:免费、开源,可通过插件扩展功能,适合需要定制化的 C++ 开发环境。
      • 缺点:相比于一些专门针对 C++ 的 IDE,可能在用户体验和性能上略显逊色。
  1. Qt Creator
      • 优点:
        • 专注于 Qt 框架的集成开发环境,适合开发 GUI 应用程序。
        • 跨平台支持,适合多平台开发。
        • 提供设计界面和代码编辑器的集成。
      • 缺点:
        • 面向 Qt 开发,对于非 GUI 开发可能略显繁琐。
根据您的需求、个人偏好、功能、性能、学习曲线以及是否需要专门支持 Apple M1 芯片等因素进行比较和选择适合您的 C++ IDE。
因为我比较喜欢 Visual Studio Code 的风格,前期主要用于学习,所有选择以 VS Code 为主要开发工具,后期工作需要再转别的 IDE。

VS Code 安装

  1. 下载安装
    1. https://code.visualstudio.com/ 官网下载安装即可
      notion image
      notion image
  1. 安装插件
  • Chinese (Simplified) (简体中文) Language Pac
    • VS Code 默认英文环境,现在中文环境也是通过安装扩展来实现,如下图所示,侧边栏的扩展→搜索框中输入 language → 选择「Chinese(Simplified)」安装→重启生效
      notion image
  • C/C++
    • Microsoft C/C++ 扩展提供了对 Visual Studio Code 的 C/C++ 支持,以支持在 Windows、Linux 和 macOS 上进行跨平台 C 和 C++ 开发。当您创建 *.cpp 文件时,该扩展会添加语法突出显示(着色)、智能补全和悬停(IntelliSense)以及错误检查等功能。
      notion image

第一个 C++ 程序

第一个示例程序

  1. 打开 VS Code ,新建/打开 一个 project 文件夹
  1. 新建一个 .cpp 文件,编写代码
    1. notion image
  1. 点击左上角的 运行按钮→Run C++,选择一个运行环境
    1. notion image
      notion image
       
  1. 编译成功后,在下发的 DEBUG CONSOLE 查看程序输出
    1. notion image
补充:
在编程中,clangclang++ 和 g++ 都是编译器,用于将源代码转换为可执行文件。它们之间有一些区别,以下是它们的定义和对比:
  • clang: clang 是由苹果公司开发的 C、C++ 和 Objective-C 编译器。它是基于LLVM项目的编译器,旨在提供更快的编译速度和更好的错误消息。
  • clang++: clang++ 是 clang 的 C++ 版本,用于编译 C++ 代码。它实际上是 clang 的 C++ 前端,用于处理 C++ 代码。
  • g++: g++ 是 GNU 项目中的 C++ 编译器,是 GCC(GNU Compiler Collection)套件中的一个组件。它支持 C++、C 和其他语言的编译,并提供了丰富的编译选项和功能。

你可能会遇到的问题

clang build active file 无法运行的问题
选择 C/C++: clang build active file 运行环境,遇到以下错误
解决:选择 clang++、g++ 环境运行

工程目录调整

创建三个文件夹 include、src、bulid 分别用来存放头文件(.h)源文件( .cpp)和 构建过程中的文件。
文件结构与对应代码如下:
notion image
 
其中,需要对 task.json 做配置修改
对 task.json 常见参数解析如下:
  • label:标签值是您将在任务列表中看到的内容,你可以随意命名它
  • command:指定运行程序的编译器「/usr/bin/g++」
  • args: args 数组指定传递给 g++ 的命令行参数。这些参数按照编译器期望的特定顺序列在该文件中。
    • 您可以使用“${workspaceFolder}/*.cpp”而不是“${file}”等参数修改 tasks.json 以构建多个 C++ 文件,这将构建当前文件夹中的所有 .cpp 文件。您还可以通过将 “${fileDirname}/${fileBasenameNoExtension}” 替换为硬编码文件名(例如 “${workspaceFolder}/myProgram.out” )来修改输出文件名。
      运行参数最终拼接可通过 Terminal 查看输出内容:
运行参数配置可参考 vs code doc-tasksconfig-clang-mac
  • problemMatcher: ProblemMatcher 值选择用于在编译器输出中查找错误和警告的输出解析器。对于 GCC,如果使用 $gcc 问题匹配器,您将获得最佳结果。
  • group:定义任务属于哪个组。可以通过从命令面板运行运行对应的任务来执行
  • detail:详细信息值是您将在任务列表中看到的任务描述。强烈建议重命名该值以将其与类似任务区分开来

VS Code 快捷键

在 Visual Studio Code (VS Code) 中有许多常用的快捷键可以提高你的工作效率。以下是一些常用的快捷键:

常用快捷键

  • 全局
    • Ctrl + Shift + P:打开命令面板
    • Ctrl + \:打开/关闭终端
    • Ctrl + B:打开/关闭侧边栏
    • Ctrl + K, Ctrl + S:打开键盘快捷键设置
  • 基本编辑
    • Ctrl + S:保存文件
    • Ctrl + C:复制
    • Ctrl + X:剪切
    • Ctrl + V:粘贴
    • Ctrl + Z:撤销
    • Ctrl + Y:重做
    • Ctrl + F:查找
    • Ctrl + H:替换
  • 光标移动
    • Ctrl + ← / →:按单词向左/向右移动光标
    • Home:跳转到行首
    • End:跳转到行尾
    • Ctrl + Home:跳转到文件开头
    • Ctrl + End:跳转到文件结尾
  • 多行编辑
    • Alt + 鼠标左键拖动:多行选择
    • Ctrl + Alt + ↑ / ↓:在上方/下方插入光标
    • Shift + Alt + I:在多个光标下插入
  • 文件和窗口操作
    • Ctrl + N:新建文件
    • Ctrl + O:打开文件
    • Ctrl + W:关闭编辑器
    • Ctrl + Tab:在打开的文件之间切换
  • 调试
    • F5:启动调试
    • F9:在当前行设置断点
    • F10:逐行执行
    • F11:进入函数
你也可以在 VS Code 中通过 Ctrl + K, Ctrl + S 打开键盘快捷键设置,查看和修改快捷键绑定。这些快捷键可以根据你的需求进行自定义设置。

参考文档

 
C++ 程序编译流程C++ 相关资料及计划
  • Utterance
Catalog