macOS C++ 开发环境搭建与实战指南
✅ 适合人群:零基础或有其他语言经验,想在 Mac 上系统学习 C++ 💻 系统要求:macOS Monterey (12.0) 或更高(推荐 Sonoma/Ventura) 🛠️ 目标:搭建专业级 C++ 开发环境,支持 C++17/20/23、调试、测试、多文件项目
在 macOS 系统上搭建专业 C++ 开发环境的完整流程。内容涵盖安装 Xcode 命令行工具与 Homebrew 包管理器,选择 Visual Studio Code 或 CLion 作为编辑器,使用 CMake 构建多文件项目,配置 LLDB 进行程序调试,以及集成 Google Test 编写单元测试。文中提供了具体的终端命令、配置文件模板及代码示例,旨在帮助开发者快速建立现代化、工业级且跨平台兼容的 C++ 开发工作流。

✅ 适合人群:零基础或有其他语言经验,想在 Mac 上系统学习 C++ 💻 系统要求:macOS Monterey (12.0) 或更高(推荐 Sonoma/Ventura) 🛠️ 目标:搭建专业级 C++ 开发环境,支持 C++17/20/23、调试、测试、多文件项目
这是 Apple 提供的官方编译器套件(基于 LLVM/Clang),包含:
clang++:现代 C++ 编译器(支持 C++20/23)gdb / lldb:调试器make、git、nm 等开发工具打开 终端(Terminal),执行:
xcode-select --install
会弹出窗口,点击'安装'即可(无需下载完整 Xcode)。
✅ 验证安装:
clang++ --version
你应该看到类似:
Apple clang version 15.0.0 (clang-1500.1.0.2.5) Target: arm64-apple-darwin23.2.0 ...
💡 注意:macOS 上的
clang++默认就是c++,无需额外配置。
用于安装第三方工具(如 CMake、GCC、gtest 等)。
在终端运行:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装完成后,验证:
brew --version
这是目前 最流行、最轻量、功能最强 的跨平台编辑器,完美支持 C++。
~/cpp-projects/helloCmd+Shift+P → 输入 'Tasks: Configure Task' → 选择 'Create tasks.json'替换为以下内容:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "clang++ build active file",
"command": "/usr/bin/clang++",
"args": [
"-std=c++20",
"-stdlib=libc++",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
新建 main.cpp:
#include <iostream>
int main() {
std::cout << "Hello from macOS!\n";
return 0;
}
✅ 现在按 Cmd+Shift+B 即可编译当前 .cpp 文件!
如果你追求 全功能集成开发环境(类似 Windows 上的 Visual Studio),JetBrains 的 CLion 是 macOS 上最佳选择。
优点:开箱即用,无需配置;缺点:收费、较吃内存。
虽然主要用于 iOS/macOS App 开发,但也能写 C++。
⚠️ 缺点:对纯 C++ 项目支持不如 VS Code/CLion 灵活,CMake 支持弱。
项目结构:
my_project/
├── CMakeLists.txt
├── src/
│ └── main.cpp
├── include/
│ └── utils.h
└── tests/
└── test_utils.cpp
brew install cmake
include/utils.h:
#pragma once
int add(int a, int b);
src/main.cpp:
#include <iostream>
#include "utils.h"
int main() {
std::cout << "5 + 3 = " << add(5, 3) << "\n";
return 0;
}
src/utils.cpp(实现):
#include "utils.h"
int add(int a, int b) {
return a + b;
}
cmake_minimum_required(VERSION 3.20)
project(MyProject LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# 包含头文件目录
include_directories(include)
# 主程序
add_executable(app src/main.cpp src/utils.cpp)
# 启用测试
enable_testing()
# 添加 Google Test(如果需要)
find_package(GTest QUIET)
if(GTest_FOUND)
add_executable(tests tests/test_utils.cpp src/utils.cpp)
target_link_libraries(tests GTest::gtest GTest::gtest_main)
add_test(NAME UtilsTest COMMAND tests)
endif()
cd my_project
mkdir build && cd build
cmake ..
make
./app
✅ 输出:
5 + 3 = 8
macOS 默认调试器是 LLDB(不是 GDB)。
.vscode/launch.json:{
"version": "0.2.0",
"configurations": [
{
"name": "Debug C++",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "lldb",
"preLaunchTask": "clang++ build active file"
}
]
}
F5 启动调试!💡 提示:确保已通过
Cmd+Shift+B编译过程序。
brew install googletest
tests/test_utils.cpp)#include <gtest/gtest.h>
#include "utils.h"
TEST(UtilsTest, AddPositiveNumbers) {
EXPECT_EQ(add(2, 3), 5);
}
TEST(UtilsTest, AddNegativeNumbers) {
EXPECT_EQ(add(-1, -1), -2);
}
在之前的基础上,添加:
# 查找并链接 GTest
find_package(GTest REQUIRED)
add_executable(tests tests/test_utils.cpp src/utils.cpp)
target_link_libraries(tests GTest::gtest GTest::gtest_main)
add_test(NAME AllTests COMMAND tests)
cd build
cmake .. -Dgtest_force_shared_crt=ON
make ./tests
✅ 输出:
[==========] Running 2 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 2 tests from UtilsTest
[ RUN ] UtilsTest.AddPositiveNumbers
[ OK ] UtilsTest.AddPositiveNumbers
[ RUN ] UtilsTest.AddNegativeNumbers
[ OK ] UtilsTest.AddNegativeNumbers
[----------] 2 tests from UtilsTest (0 ms total)
[==========] 2 tests from 1 test suite ran. (0 ms total)
[ PASSED ] 2 tests.
| 操作 | 命令 |
|---|---|
| 编译单文件 | clang++ -std=c++20 -g main.cpp -o main |
| 运行程序 | ./main |
| 调试程序 | lldb ./main → (lldb) run |
| 查看 Clang 支持的 C++ 标准 | `clang++ -std=c++23 -dM -E - < /dev/null |
| 清理构建 | rm -rf build/ |
可以,但不推荐。Apple 已全面转向 Clang,且 Clang 对 C++20/23 支持更好。
brew install gcc g++-13 -std=c++23 ... # 不如直接用 clang++
Clang 15+(macOS Sonoma 自带)已支持大部分 C++23 特性。编译时加 -std=c++23 即可。
确保已安装 C/C++ 扩展,并在 .vscode/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++20",
"intelliSenseMode": "macos-clang-arm64"
}
],
"version": 4
}
| 组件 | 推荐方案 |
|---|---|
| 编译器 | clang++(系统自带) |
| 编辑器 | VS Code(免费) 或 CLion(专业) |
| 构建系统 | CMake |
| 调试器 | LLDB(VS Code 集成) |
| 测试框架 | Google Test |
| 包管理 | Homebrew |
现在,你已经拥有了一个 完全现代化、工业级、跨平台兼容 的 C++ 开发环境!
下一步建议:尝试用 CMake + Google Test 重做你之前的练习项目,学习使用
git管理代码版本,探索 Conan / vcpkg(C++ 包管理器)。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online