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