1、安装 clang
可以从官网下载,如果是CentOS 6 系统,也可以在 /etc/yum.repos.d/ 目录下增加一个 epel.repo 文件,内容如下:
[epel]
name=Extra Packages for Enterprise Linux - $basearch
baseurl=http://mirrors.aliyun.com/epel/6/$basearch
http://mirrors.aliyuncs.com/epel/6/$basearch
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=
gpgcheck=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [epel-debuginfo]
name=Extra Packages for Enterprise Linux - $basearch - Debug
baseurl=http://mirrors.aliyun.com/epel/6/$basearch/debug
http://mirrors.aliyuncs.com/epel/6/$basearch/debug
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck= [epel-source]
name=Extra Packages for Enterprise Linux - $basearch - Source
baseurl=http://mirrors.aliyun.com/epel/6/SRPMS
http://mirrors.aliyuncs.com/epel/6/SRPMS
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=
然后执行 yum update ,再 yum install clang 就好了。
2、安装 libc++
正如 gcc 编译 c++ 使用自己的实现的标准库一样,clang 也有自己实现的 c++ 库,称为 libc++,下载源代码进行编译:
svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx
cd libcxx/lib
./buildit
把 lib 目录下生成的 libc++.so.1.0 拷贝到 /usr/lib,加上两个符号链接:
cp libc++.so.1.0 /usr/lib
cd /usr/lib
ln -sf libc++.so libc++.so.1.0
ln -sf libc++.so. libc++.so.1.0
因为 clang 默认去 /usr/include/c++/v1 目录搜索 libc++,把 libcxx/include 这个目录下所有文件复制到 /usr/include/c++/v1 目录下:
cd libcxx
cp include /usr/include/c++/v1 -r
这样在 /usr/include/c++/v1 就可以看到标准C++的头文件了。
3、编译 C++
clang++ --std=c++ -stdlib=libc++ test.cpp
上面的 -stdlib=libc++ 表示使用上面安装的 clang 专属 libc++,也可以不带此参数,使用 gcc 的库。