Вообще говоря, вы должны удалить std include из вашего пути включения и остановить clang от связи с stdlib, затем вручную включить другие библиотеки в качестве библиотек CMake и затем также добавить путь включения.
У вас установлен libc ++?Согласно домашней странице libcxx libcxx в настоящее время официально не поддерживается в linux.
clang широко аргументированно совместим с gcc, поэтому вы должны иметь возможность передавать clang -nostdlib -nostdinc
Однако вам не обязательно создавать свой собственный libc.Вы также можете собрать компилятор из исходников (trunk), и он, скорее всего, будет поддерживать libstdc ++.(Я только что начал работать над Fedora15).
Страница clang Getting Started - хороший ресурс!
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/
.если вы решите сделать make 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