源码编译安装 clang
参考文章https://solarianprogrammer.com/2013/01/17/building-clang-libcpp-ubuntu-linux/安装好 ubuntu 后,打开终端, 依次输入下面几条命令1.sudo apt-get updatesudo apt-get upgradesudo apt-get install g++ subver
·
参考文章
https://solarianprogrammer.com/2013/01/17/building-clang-libcpp-ubuntu-linux/
http://blog.csdn.net/heartszhang/article/details/17652461
1.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install g++ subversion cmake
2.
从 http://llvm.org/releases/download.html 下载 LLVM ,CLANG,libc++, libcxxabi 的最新版本源码
并分别解压缩到下面 3 个( 新建的 )目录
~/llvm
~/llvm/tools/clang
~/Clang/libcxx
~/libcxxabi
3.
编译链接 llvm 和 clang
cd ..
cd ..
mkdir build && cd build
../llvm/configure --prefix=/usr/clang_3_4 --enable-optimized --enable-targets=host --disable-compiler-version-checks
make -j 8
4.
安装 clang
sudo make install
安装完毕后, usr 目录下生成了 clang_3_4 目录
把 clang 目录加入系统路径
打开 .bashrc 文件,
cd ~
gedit ~/.bashrc
. .bashrc
在最后加上
export PATH=/usr/clang_3_4/bin:$PATH
5.
编译并安装 libc++
编译 libc++ 时需要包含系统C++编译器和目标平台的路径
在终端中输入下面语句来获取路径信息
echo | g++ -Wp,-v -x c++ - -fsyntax-only
输入后终端显示下面14行文字信息
1 ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/4.8"
2 ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
3 ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../x86_64-linux-gnu/include"
4 #include "..." search starts here:
5 #include <...> search starts here:
6 /usr/include/c++/4.8
7 /usr/include/x86_64-linux-gnu/c++/4.8
8 /usr/include/c++/4.8/backward
9 /usr/lib/gcc/x86_64-linux-gnu/4.8/include
10 /usr/local/include
11 /usr/lib/gcc/x86_64-linux-gnu/4.8/include-fixed
12 /usr/include/x86_64-linux-gnu
13 /usr/include
14 End of search list.
第 6 行和第 7 行就是需要的路径信息
编译 libc++
在终端中输入下面几行命令
cd ~/Clang
mkdir build_libcxx && cd build_libcxx
CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DLIBCXX_CXX_ABI=libsupc++ -DLIBCXX_LIBSUPCXX_INCLUDE_PATHS="/usr/include/c++/4.8/;/usr/include/x86_64-linux-gnu/c++/4.8" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr $HOME/Clang/libcxx
make -j 8
sudo make install
6.
编译 libc++abi
cd libcxxabi/lib
./buildit
sudo cp libc++abi.so.1.0 /usr/lib/libc++abi.so.1.0
cd /usr/lib
sudo ln -s libc++abi.so.1.0 libc++abi.so.1
sudo ln -s libc++abi.so.1 libc++abi.so
测试 clang
现在可以使用下面的编译命令来编译 C++11 的代码了
clang++ -std=c++11 -stdlib=libc++ <your_program_name>
新建一个 example_001.cpp 文件, 内容如下:
//Program to test the new C++11 lambda syntax
#include <iostream>
using namespace std;
int main()
{
cout << [](int m, int n) { return m + n;} (2,4) << endl;
return 0;
}
在终端中输入:
clang++ -std=c++11 -stdlib=libc++
-lc++abi
example_001.cpp -o example_001如果能编译通过并生成 example_001, 就表示 clang 可以用了
更多推荐
已为社区贡献1条内容
所有评论(0)