红联Linux门户
Linux帮助

手把手教你在Ubuntu下安装clang和libc++

发布时间:2017-03-28 10:14:49来源:linux网站作者:算法时空
本文主要针对需要在Ubuntu下用clang和libc++标准库学习C++的同学. 操作系统是Ubuntu 16.10的64位版.
 
步骤
安装必要的包:
sudo apt install subversion
sudo apt install cmake
 
建立目录(这里取名为CL):
cd ~
sudo mkdir CL
cd CL
 
下载llvm:
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
 
下载clang:
cd llvm/tools
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
cd ../..
 
下载clang工具(可选)
cd llvm/tools/clang/tools
svn co http://llvm.org/svn/llvm-project/clang-tools-extra/trunk extra
cd ../../../..
 
下载Compiler-RT(可选)
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt
cd ../..
 
下载标准库libcxx(绝对要下载)还有libcxxabi(千万不要遗漏):
cd llvm/projects
svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx
svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk libcxxabi
cd ../..
 
编译安装
mkdir build
cd build
 
注意将默认的Debug模式换成Release模式.
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm
make
sudo make install
 
可以用了!
 
测试一下
clang++ --help
 
基于c++11使用libc++编译x.cpp并执行a.out
clang++ -std=c++11 -stdlib=libc++ x.cpp
.\a.out
 
验证x.cpp的正确性
clang x.cpp -fsyntax-only
 
输出x.cpp未优化的LLVM代码
clang x.cpp -S -emit-llvm -o -
 
输出x.cpp经过O3优化的LLVM代码
clang x.cpp -S -emit-llvm -o - -O3
 
输出x.cpp的原生机器码
clang x.cpp -S -O3 -o -
 
折腾
安装完毕之后, 如果不嫌麻烦的话, 可以用clang再编译安装一次:
CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ../llvm
后续步骤同上。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/29534.html