本文所有操作来自下面两篇博客
http://www.cnblogs.com/ralphjzhang/archive/2011/12/02/2272671.html
https://github.com/hh8456/use_vim_as_ide/blob/master/README.md#7.1.1
http://llvm.org/releases/download.html 处这里下载
Download LLVM 3.6.0
Pre-builtBinaries:
解压到 clang+llvm-3.6.0-x86_64-linux-gnu 文件夹
cd clang+llvm-3.6.0-x86_64-linux-gnu
sudo cp -r * /usr/local
在终端输入 clang –v
就能看见安装好的 clang 编译器版本了
libc++ 是针对 clang 特别重写的 C++ 标准库,也算是 clang 的“御用”库了。这就像 libstdc++ 和 gcc 的关系,但 clang 也可以用 libstdc++
如果想要用 libc++ ,需要拿下它的代码,自己编译,不过非常容易。首先保证你有
subversion:
sudo apt-get install subversion
然后从 libc++ 代码仓库下载代码:
cd ~/Downloads/
svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx
cd libcxx/lib
./buildit
头文件已经生成到 ~/Downloads/libcxx/include/,要让 clang找到必须复制到 /usr/include/c++/v1/
cp -r ~/Downloads/libcxx/include/ /usr/include/c++/v1/
*.so 文件已生成 ~/downloads/libcxx/lib/libc++.so.1.0,要让 clang访问必须复制到 /usr/lib/,并创建软链接
ln -s ~/Downloads/libcxx/lib/libc++.so.1.0 ~/Downloads/libcxx/lib/libc++.so.1
ln -s ~/Downloads/libcxx/lib/libc++.so.1.0 ~/Downloads/libcxx/lib/libc++.so
cp ~/Downloads/libcxx/lib/libc++.so* /usr/lib/
类似,源码安装 libc++abi的头文件和动态链接库:
cd ~/Downloads/
svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk libcxxabi
cd libcxxabi/lib
./buildit
头文件已经生成到 ~/Downloads/libcxxabi/include/,要让 clang找到必须复制到 /usr/include/c++/v1/
cp -r ~/Downloads/libcxxabi/include/ /usr/include/c++/v1/
\*.so文件已生成~/Downloads/libcxx/lib/libc++abi.so.1.0,要让 clang访问必须复制到 /usr/lib/,并创建软链接
ln -s ~/Downloads/libcxxabi/lib/libc++abi.so.1.0 ~/Downloads/libcxxabi/lib/libc++abi.so.1
ln -s ~/Downloads/libcxxabi/lib/libc++abi.so.1.0 ~/Downloads/libcxxabi/lib/libc++abi.so
cp ~/Downloads/libcxxabi/lib/libc++abi.so* /usr/lib/
创建一个 new_feature.cpp
1#include
2 #include <string>
3
4 class MyClass
5 {
6 public:
7 std::string s ="Hello, world\n"; // Non-static data member initializer
8 };
9
10int main()
11{
12 std::cout << MyClass().s;
13}
后续可以通过如下选项进行代码编译:
clang++ -std=c++11 -stdlib=libc++ -Werror -Weverything -Wno-disabled-macro-expansion -Wno-float-equal -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-global-constructors -Wno-exit-time-destructors -Wno-missing-prototypes -Wno-padded -Wno-old-style-cast -lc++ -lc++abi
new_feature.cpp
编译选项简单说说:
当然,有些警告意义不大,完全可忽略,如下:
输出熟悉的 Hello, world
clang 就算正式能用了。