源码编译安装 clang
2015-11-08 14:38
183 查看
参考文章
https://solarianprogrammer.com/2013/01/17/building-clang-libcpp-ubuntu-linux/ http://blog.csdn.net/heartszhang/article/details/17652461
安装好 ubuntu 后,打开终端, 依次输入下面几条命令
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
~/
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.
编译
测试 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++
如果能编译通过并生成 example_001, 就表示 clang 可以用了
https://solarianprogrammer.com/2013/01/17/building-clang-libcpp-ubuntu-linux/ http://blog.csdn.net/heartszhang/article/details/17652461
安装好 ubuntu 后,打开终端, 依次输入下面几条命令
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++abiexample_001.cpp -o example_001
如果能编译通过并生成 example_001, 就表示 clang 可以用了
相关文章推荐
- 数据结构实验之栈一:进制转换
- MapReduce架构
- java System.getProperty()可以获取的值
- 博客
- 《leetCode》:Group Anagrams
- iOS巅峰之深拷贝和浅拷贝区别
- java网络编程(二)
- php中变量的3中赋值方式
- 【注意】C 运算符优先级 口诀 易错点
- android studio下phonegap+jquerymobile hybird开发
- [LeetCode] Single Number II
- java网络编程(一)
- 代码块
- Nginx配置文件nginx.conf中文详解
- wx.ScrolledWindow wx.PseudoDC
- 【字典树】HDU1671Phone List(论释放内存的重要性)
- 顺序表应用6:有序顺序表查询
- 最简单的视频网站(JavaEE+FFmpeg)
- 服务器的产品类型之塔式|机架式|刀片式
- 典型用户分析