如果是在 macOS 下 build Clang

  • 最好带上版本好,比如 clang12clang++12 。这是避免与系统的 /urs/bin/clang 产生冲突。
  • 一定要连 libcxxlibcxxabi 也一起 enable ,因为要连 C++ STL 也要一起编译的。

把 Clang build 完以后,会出现头文件找不到的问题。具体原因我不太明白。

clang test.c

文件 test.c

#include <wchar.h>

int main() {
    return 0; 
}

会提示 /urs/local/include/c++/v1/wchar.h 里面的

...
#include_next <wchar.h> 
...

无法找到。

然后上网找一圈,

发现好像是 自己编译的的 Clang 无法找到 system headers 。

就在 ~./zprofile 里面加个 SDKROOT

export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk                                                                                      

具体版本号可以安装 Xcode 以后知道。

以后想一想这个问题到底是什么原因才行。

现在只能暂时随便搞了,以后还是用虚拟机,刚开始什么都不会把文件搞乱了。

然后重新编译

clang -v test.c

好像 End of Search list 变了。特别是 #include "..."#include <...>