前言
最近的学习上需要使用llvm编译器后端和clang编译器前端,主要是进行多线程openmp程序的开发与学习,踩了不少坑,随之记录下来以供大参考
一、LLVM是什么?
广义上LLVM指包括前端优化器后端在内的架构编译器的框架系统,狭义的LLVM指优化器和后端部分,而前端可以跟GCC和Clang等配合使用。LLVM将前端,优化器和后端三者解耦,通过生成相同的中间表示IR来兼容不同的高级语言与不用的机器底层架构广义上LLVM指包括前端优化器后端在内的架构编译器的框架系统,狭义的LLVM指优化器和后端部分,而前端可以跟GCC和Clang等配合使用。LLVM将前端,优化器和后端三者解耦,通过生成相同的中间表示IR来兼容不同的高级语言与不用的机器底层架构。
二、使用步骤
1.升级CMake
在初次下载llvm源码后对其进行编译产生了版本需求错误,因此需要先更新CMake版本
下载源码-解压-编译-安装
cd /usr/local/src
//下载源码
wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz
//解压
tar -zxvf cmake-3.6.2.tar.gz
./bootstrap
//编译
gmake
//安装
gmake install
//删除旧版本(无需确认)
yum remove cmake -y
//建立软连接
ln -s /usr/local/bin/cmake /usr/bin/
//查看版本
cmake --version
//成功显示如下代码
cmake version 3.6.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
2.升级GCC
因为安装llvm对gcc版本有要求,否则在源码的编译阶段就会校验无法通过,报下面的错误
Host GCC version should be at least 5.1 because LLVM will soon use new C++
features which your toolchain version doesn't support. Your version is
4.8.5. You can temporarily opt out using
LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN, but very soon your toolchain won't be
supported.
下载源码 解压 编译安装
//进入目录(个人喜好配置)
cd /usr/local/src
//下载源码
wget http://ftp.gnu.org/gnu/gcc/gcc-7.1.0/gcc-7.1.