llvm学习(十):修复 macOS Catalina 缺失 /usr/include 导致的clang无法使用

今天升了macOS10.15,发现自己编译的llvm和clang坏掉了,重新编译也没用,而自带的/usr/clang是没有问题的,发现是 /usr/include 缺失。

==2020年11月19日:big sur 无法修改/usr/include,==

==2020年11月20日:使用cmake初始化时,添加-DDEFAULT_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk,重新编译,即可解决==

一、背景

Command Line Tools 10.13系列,是拥有/usr/include目录的,之前一直在用。但是在macOS 10.15上无法安装它,就很气。 Command Line Tools 10.14系列,砍掉了32位的编译环境,也砍掉了/usr/include。 macOS 10.15砍掉了 32 位的运行环境,将 / 挂载为 read-only。 而自己编译的llvm+clang是不会主动去寻找 MacOSXSDK的头文件的,就出现了找不到头文件的情况。

二、修复过程(已失效)

三、Repair it (Out of state)

四、相关链接

https://github.com/Homebrew/homebrew-core/issues/45061
https://discourse.brew.sh/t/clang-can-no-longer-find-usr-include-header-files-fatal-error-stdlib-h-file-not-found/4523/7