在 macOS 使用 bits/stdc++.h

70次阅读
没有评论

背景说明

macOS 默认使用 LLVM/Clang 工具链,Clang 不包含 GNU/GCC 的扩展头文件 bits/stdc++.h。即便在 macOS 上运行 g++,实际也会调用 clang++,因此很多初学者常用的 #include <bits/stdc++.h> 会报错找不到头文件。

本文提供一个兼容的 bits/stdc++.h,并给出安装脚本,帮助在 macOS 上启用该头文件。

GitHub仓库:https://github.com/ty-yqs/macOS-stdc.h

安装方法

方案一:使用脚本自动安装(推荐)

  1. 下载 install.sh

  2. 在终端执行:

    sudo bash ./install.sh
  3. 安装完成后,即可在 C++ 代码中使用:

    #include <bits/stdc++.h>

方案二:手动安装

  1. 创建目录 bits 到系统 SDK 的头文件目录下:

    mkdir /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/bits
  2. 将仓库中的 bits/stdc++.h 安装到该目录(可直接使用 curl 下载远程文件):

    curl https://raw.githubusercontent.com/ty-yqs/macOS-stdc.h/refs/heads/main/bits/stdc%2B%2B.h > /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/bits/stdc++.h
  3. 安装后即可正常包含:

    #include <bits/stdc++.h>

注意事项

  • 需要管理员权限:上述路径属于系统 SDK,创建目录与写入文件通常需要 sudo 权限。
  • 路径依赖 Xcode Command Line Tools:如果路径不存在,先在终端运行 xcode-select --install 安装命令行工具。
  • 可能受系统更新影响:macOS 或 Xcode 更新可能重置 SDK 内容,如遇失效可重新执行安装步骤。

测试示例

安装完成后,用一个最简示例测试:

#include <bits/stdc++.h>
using namespace std;

int main() {
    vector
<int> a = {3, 1, 4};
    sort(a.begin(), a.end());
    for (int x : a) cout << x << " ";
    cout << "\n";
    return 0;
}

编译运行(以 Clang 为例):

clang++ -std=gnu++17 -O2 test.cpp -o test
./test

若输出为 1 3 4,说明安装成功。

正文完
 0
评论(没有评论)

YanQS's Blog