一般来说,您必须从包含路径中删除 std 包含并停止 clang 与 stdlib 链接,然后您手动将其他库包含为 CMake 库,然后您还添加包含路径。
你有安装 libc++ 吗?根据libcxx 主页libcxx 目前在 linux 上不受官方支持。
clang 与 gcc 广泛兼容,因此您应该能够通过clang -nostdlib -nostdinc
但是,您不一定需要构建自己的 libc。您还可以从源(主干)构建编译器,它很可能支持 libstdc++。(我刚刚让它在 Fedora15 上运行)。
clang的入门页面是一个很好的资源!
BLD=$(pwd)/llvm
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd ../.. # back to where you started
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
cd ../.. # back to where you started
mkdir build # for building without polluting the source dir
cd build
../llvm/configure --enable-optimize --disable-assertions --prefix /usr/local
make -j8 # adjust to the number of cores or cores times 2
然后,clang 二进制文件驻留在${BLD}/Release/bin/
. 如果你决定做 amake install
他们应该被复制到/usr/local/bin/
. 因此,您可以将以下参数传递给 CMake:
cd your_source_dir_here
mkdir build
cd build
cmake .. -DCMAKE_CXX_COMPILER=${BLD}/Release/bin/clang++ -DCMAKE_C_COMPILER=${BLD}/Release/bin/clang