Categories:
Clang 编译和安装的疑问?
如果是在 macOS 下 build Clang
- 最好带上版本好,比如
clang12
和clang++12
。这是避免与系统的/urs/bin/clang
产生冲突。 - 一定要连
libcxx
和libcxxabi
也一起 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>
...
无法找到。
然后上网找一圈,
- c++ - Clang on MacOS having problems with its includes - Stack Overflow
- macos - ZSH: .zprofile, .zshrc, .zlogin - What goes where? - Ask Different (stackexchange.com)
- Xcode 10 Release Notes - Apple Developer Documentation
发现好像是 自己编译的的 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 <...>