Cursor blinking

IDE 安装

C++ 基础|字数 1,950|阅读时长≈ 5 分钟

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. 下载安装

https://code.visualstudio.com/ 官网下载安装即可

截屏2024-04-02 11.45.32.png
截屏2024-04-02 11.45.32.png
截屏2024-04-02 11.48.02.png
截屏2024-04-02 11.48.02.png
  1. 安装插件
  • Chinese (Simplified) (简体中文) Language Pac

VS Code 默认英文环境,现在中文环境也是通过安装扩展来实现,如下图所示,侧边栏的扩展→搜索框中输入 language → 选择「Chinese(Simplified)」安装→重启生效

截屏2024-04-02 13.36.18.png
截屏2024-04-02 13.36.18.png
  • C/C++

Microsoft C/C++ 扩展提供了对 Visual Studio Code 的 C/C++ 支持,以支持在 Windows、Linux 和 macOS 上进行跨平台 C 和 C++ 开发。当您创建 *.cpp 文件时,该扩展会添加语法突出显示(着色)、智能补全和悬停(IntelliSense)以及错误检查等功能。

截屏2024-04-02 13.48.31.png
截屏2024-04-02 13.48.31.png

第一个 C++ 程序

第一个示例程序

  1. 打开 VS Code ,新建/打开 一个 project 文件夹
  1. 新建一个 .cpp 文件,编写代码
截屏2024-04-02 14.43.41.png
截屏2024-04-02 14.43.41.png
Code
// hello.cpp 文件#include<iostream> int main(){    std::cout << "Hello World!" << std::endl;}
  1. 点击左上角的 运行按钮→Run C++,选择一个运行环境
截屏2024-04-02 14.50.47.png
截屏2024-04-02 14.50.47.png
截屏2024-04-02 14.51.38.png
截屏2024-04-02 14.51.38.png
  1. 编译成功后,在下发的 DEBUG CONSOLE 查看程序输出
截屏2024-04-02 14.52.10.png
截屏2024-04-02 14.52.10.png

补充:

在编程中,clang、clang++ 和 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 运行环境,遇到以下错误

Code
 // Terminal 输出 *  Executing task: C/C++: clang build active fileStarting build.../usr/bin/clang -std=gnu++14 -fcolor-diagnostics -fansi-escape-codes -g xxxxxx/test/hello.cpp -o xxxxxx/test/helloUndefined symbols for architecture arm64:   ...    ld: symbol(s) not found for architecture arm64clang: error: linker command failed with exit code 1 (use -v to see invocation)Build finished with error(s).  *  The terminal process terminated with exit code: -1.  *  Terminal will be reused by tasks, press any key to close it. 

解决:选择 clang++、g++ 环境运行

工程目录调整

创建三个文件夹 include、src、bulid 分别用来存放头文件(.h)源文件( .cpp)和 构建过程中的文件。

文件结构与对应代码如下:

截屏2024-04-02 16.27.56.png
截屏2024-04-02 16.27.56.png
Code
// log.h 文件#include <iostream>#include <ctime> using namespace std;void log(const string& message);  // log.cpp 文件#include "../include/log.h" void log(const string& message) {        // 获取当前日期和时间    time_t now = time(0);    struct tm *localTime = localtime(&now);     // 格式化日期和时间    char buffer[80];    strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", localTime);     // 输出日志信息    cout << "[" << buffer << "] " << message << endl;}  // hello.cpp 文件#include<iostream>#include "include/log.h" int main(){    std::cout << "Hello World!" << std::endl;    log("This is a log message.");}

其中,需要对 task.json 做配置修改

Code
{    "tasks": [        {            "type": "cppbuild",            "label": "C/C++: g++ build active file",            "command": "/usr/bin/g++",            "args": [                "-fdiagnostics-color=always",                "-g",                "${workspaceFolder}/*.cpp",                "${workspaceFolder}/src/*.cpp",                "-o",                "${fileDirname}/build/${fileBasenameNoExtension}"            ],            "options": {                "cwd": "${fileDirname}"            },            "problemMatcher": [                "$gcc"            ],            "group": {                "kind": "build",                "isDefault": true            },            "detail": "Task generated by Debugger."        }    ],    "version": "2.0.0"}

对 task.json 常见参数解析如下:

  • label:标签值是您将在任务列表中看到的内容,你可以随意命名它
  • command:指定运行程序的编译器「/usr/bin/g++」
  • args: args 数组指定传递给 g++ 的命令行参数。这些参数按照编译器期望的特定顺序列在该文件中。

您可以使用“${workspaceFolder}/*.cpp”而不是“${file}”等参数修改 tasks.json 以构建多个 C++ 文件,这将构建当前文件夹中的所有 .cpp 文件。您还可以通过将 “${fileDirname}/${fileBasenameNoExtension}” 替换为硬编码文件名(例如 “${workspaceFolder}/myProgram.out” )来修改输出文件名。 运行参数最终拼接可通过 Terminal 查看输出内容:

Code
/usr/bin/g++ -fdiagnostics-color=always -g /xxxxxx/test/*.cpp /xxxxxx/test/src/*.cpp -o /xxxxxx/test/build/hello

运行参数配置可参考 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 打开键盘快捷键设置,查看和修改快捷键绑定。这些快捷键可以根据你的需求进行自定义设置。

参考文档