一般的に言えば、インクルードパスからstd includeを削除し、clangがstdlibとリンクしないようにする必要があります。次に、他のライブラリをCMakeライブラリとして手動でインクルードし、インクルードパスも追加します。
libc ++をインストールしていますか?libcxxのホームページによると、 libcxxは現在Linuxで公式にサポートされていません。
clangはgccと広く引数互換性があるため、渡すことができるはずですclang -nostdlib -nostdinc
ただし、必ずしも独自のlibcを作成する必要はありません。ソース(トランク)からコンパイラをビルドすることもでき、libstdc++をサポートする可能性があります。(Fedora15で動作するようになりました)。
clangのGettingStartedページは良いリソースです!
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