clang
1、安装 clang
可以从官网下载,如果是CentOS 6 系统,也可以在 /etc/yum.repos.d/ 目录下增加一个 epel.repo 文件,内容如下:
[epel] name=Extra Packages for Enterprise Linux 6 - $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=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [epel-debuginfo] name=Extra Packages for Enterprise Linux 6 - $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=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 gpgcheck=0 [epel-source] name=Extra Packages for Enterprise Linux 6 - $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=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 gpgcheck=0
然后执行 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.1 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++11 -stdlib=libc++ test.cpp
上面的 -stdlib=libc++ 表示使用上面安装的 clang 专属 libc++,也可以不带此参数,使用 gcc 的库。