参考连接:https://www.cnblogs.com/BinBinStory/p/7499527.html

https://blog.csdn.net/llwy1428/article/details/95473542

https://blog.csdn.net/u011181989/article/details/91334478

环境:centos 7.6 最小化安装

需要准备的包以及说明

Centos 7.6 everything 包 用于挂载本地镜像安装相关依赖包

llvm-8.0.0.src.tar compiler-rt-8.0.0.src.tar clang-tools-extra-8.0.0.src.tar cfe-8.0.0.src.tar llvm8.0.0相关软件包

cmake-3.9.6.tar.gz 编译llvm需要的cmake包,版本不低于3.4.3

gcc-5.5.0.tar.gz 编译需要的gcc版本不能低于5.1,centos 7.6原带的版本是4.X

gmp-4.3.2.tar.bz2 升级gcc版本所需要的依赖包

mpc-0.8.1.tar.gz 升级gcc版本所需要的依赖包

mpfr-2.4.2.tar.bz2 升级gcc版本所需要的依赖包

开始,如果想一次报错都不出现,请把文档看完,先解决编译安装llvm的基础环境之后再安装,本次安装使用的全新的操作系统,关闭了防火墙和selinux,尝试直接编译llvm,并遇见报错,解决报错的过程。

上传软件包到/root下,升级gcc版本的主程序和依赖包上传到/root/gcc目录下

解压llvm相关的软件包

tar xvf cfe-8.0.0.src.tar

tar -xvf clang-tools-extra-8.0.0.src.tar

tar -xvf compiler-rt-8.0.0.src.tar

tar -xvf llvm-8.0.0.src.tar

执行改名,移动操作,让clang,clang-tools-extra和compiler-rt就可以和llvm一起编译

mv cfe-8.0.0.src clang

mv clang/ llvm-8.0.0.src/tools/

mv clang-tools-extra-8.0.0.src extra

mv extra/ llvm-8.0.0.src/tools/clang/

mv compiler-rt-8.0.0.src compiler-rt

mv compiler-rt llvm-8.0.0.src/projects/

在llvm-8.0.0.src同级目录上新建目录,名称为build-8.0.0

mkdir build-8.0.0

cd build-8.0.0/

然后执行cmake编译

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/clang -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On ../llvm-8.0.0.src/

提示没有cmake,下面挂载光盘安装cmake

yum install -y cmake

再次执行cmake编译

报错cmake版本太低,不能低于3.4.3

下面解决cmake版本低的问题,升级cmake到3.9.6版本,首先准备好包,

安装gcc gcc-c++包以执行编译

yum install gcc gcc-c++ -y

卸载原有的cmake

yum remove cmake -y

解压所新版本的cmake并编译安装

tar -zxvf cmake-3.9.6.tar.gz

cd cmake-3.9.6

./configure --prefix=/usr/local/cmake

make -j3

make install

创建软连接

ln -s /usr/local/cmake/bin/cmake /usr/bin/cmake

查看cmake版本

cmake -version

至此,cmake版本升级结果,下面再次尝试编译llvm

cd /root/build-8.0.0/

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/clang -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On ../llvm-8.0.0.src/

又报错了

这次报错提示c++版本为4.8.5,推荐的版本不能低于5.1

下面开始升级c++版本

进入之前准备好的gcc目录,解压,安装gcc软件包和相关依赖包并且创建连接

tar xvf gcc-5.5.0.tar.gz

cp gmp-4.3.2.tar.bz2 mpc-0.8.1.tar.gz mpfr-2.4.2.tar.bz2 /root/gcc/gcc-5.5.0

cd gcc-5.5.0

yum install -y bzip2

tar -xjf mpfr-2.4.2.tar.bz2

ln -sf mpfr-2.4.2 mpfr

tar xjf gmp-4.3.2.tar.bz2

ln -sf gmp-4.3.2 gmp

tar xzf mpc-0.8.1.tar.gz

ln -sf mpc-0.8.1 mpc

编译gcc-c++和gcc

./configure --prefix=/usr/local/gcc --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib

执行make 和make install

时间较长,使用make -j3 使用3线程执行make ,使用3线程make大概执行了40分钟

make -j3

make install

添加环境变量

vi /etc/profile

export PATH=/usr/local/gcc/bin:$PATH

生效

source /etc/profile

查看gcc版本

已经升级成功

下面继续llvm的安装

依然报错版本不够,有可能的系统存在多个版本的gcc cmake还没有默认使用的自带的gcc 还是旧版本,这时候给添加编译参数,指定gcc路径。命令如下

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/clang -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On -DCMAKE_CXX_COMPILER=/usr/local/gcc/bin/c++ -DCMAKE_C_COMPILER=/usr/local/gcc/bin/gcc ../llvm-8.0.0.src/

依然报错

报错配置不完整,但是程序已经更新了下面的gcc的变量,所以只需要再次执行cmake编译即可

cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/clang -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On -DCMAKE_CXX_COMPILER=/usr/local/gcc/bin/c++ -DCMAKE_C_COMPILER=/usr/local/gcc/bin/gcc ../llvm-8.0.0.src/

cmake编译成功,执行make -j3 操作

make -j3

时间较长,后续还有报错,耐心等待。

报错了,这个报错是因为升级gcc之后动态链接库中缺少GLIBCXX_3.4.20和GLIBCXX_3.4.21文件导致,以下为修改该错误的过程

查看现有动态链接库的文件

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

查找系统上所有的libstdc++.so文件

find / -name "libstdc++.so*"

复制需要的libstdc++.so文件到/usr/lib64目录

cp /usr/local/gcc/lib64/libstdc++.so.6.0.21 /usr/lib64

删除旧版本的libstdc++.so.6文件

cd /usr/lib64/

rm -rf libstdc++.so.6

创建链接到新版本的libstdc++.so.6文件

ln -s libstdc++.so.6.0.21 libstdc++.so.6

查看更新后的libstdc++.so.6文件包含的动态链接库

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX

可以看到上面报错缺少的GLIBCXX_3.4.20和GLIBCXX_3.4.21文件已经存在

继续make j3

cd /root/build-8.0.0/

make -j3

已经解决百分之28时的报错。至此错误都已解决,静静等待make完毕,速度较慢,4核8G的虚拟机,估计要40分钟甚至更多。

make 完成

下面执行make install

安装完成

cd /usr/local/clang/

./clang --version

Centos 7 编译安装llvm 8.0.0的更多相关文章

  1. centos 6.5 编译安装了 Nginx1.6.0+MySQL5.6.19+PHP5.5.14

    centos 6.5 编译安装了 Nginx1.6.0+MySQL5.6.19+PHP5.5.14--------------------------------------------------- ...

  2. CentOS 7 编译安装clang+llvm

    天在CentOS上将最新版本的LLVM套件(LLVM,Clang和Libc++)编译安装好了,中间遇到了不少问题.虽然已经有很多博客介绍如何编译安装LLVM了,但是根据我自己亲身体验的情况来看,还是有 ...

  3. CentOS 6.5安装Erlang/OTP 17.0

    CentOS 6.5安装Erlang/OTP 17.0 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Erlang眼下已经是Fedora和Debian/ ...

  4. CentOS 6 中安装Node.js 4.0 版本或以上

    如果想在CentOS 6 中安装Node.js >4.0,如果通过以往的方式安装: wget http://nodejs.org/dist/v4.0.0/node-v4.0.0.tar.gz t ...

  5. ubuntu14.04下编译安装ambari-2.4.2.0

    ubuntu14.04下编译安装ambari-2.4.2.0 编译前的准备工作 准备工作有: 系统参数 系统依赖(编译环境) 离线安装包 java环境 maven环境 Nodejs环境 git环境 a ...

  6. centos下编译安装lnmp

    centos下编译安装lnmp 本文以centos为背景在其中编译安装nginx搭建lnmp环境. 编译安装nginx时,需要事先安装 开发包组"Development Tools" ...

  7. 转:在CentOS下编译安装GCC

    转:https://teddysun.com/432.html 在CentOS下编译安装GCC 技术  秋水逸冰  发布于: 2015-09-02  更新于: 2015-09-02  6519 次围观 ...

  8. 编译安装 LLVM

    本文记录 LLVM 的安装过程,比较繁琐,使用 LLVM 3.4 操作系统:CentOS 6.6 64 位 1. 下载需要的软件 相关软件下载地址:http://llvm.org/releases/d ...

  9. CentOS 7 编译安装 Code::Blocks

    CentOS 7 编译安装 Code::Blocks yum install cairo-devel yum install pango-devel yum install atk-devel yum ...

随机推荐

  1. 【PHP数据结构】图的概念和存储结构

    随着学习的深入,我们的知识也在不断的扩展丰富.树结构有没有让大家蒙圈呢?相信我,学完图以后你就会觉得二叉树简直是简单得没法说了.其实我们说所的树,也是图的一种特殊形式. 图的概念 还记得我们学习树的第 ...

  2. 【PHP数据结构】队列的相关逻辑操作

    在逻辑结构中,我们已经学习了一个非常经典的结构类型:栈.今天,我们就来学习另外一个也是非常经典的逻辑结构类型:队列.相信不少同学已经使用过 redis . rabbitmq 之类的缓存队列工具.其实, ...

  3. symfony2显示调试工具栏

    1. app/config/config_dev.yml framework: templating: engines: ['twig'] router: resource: "%kerne ...

  4. jQuery <= 1.11.3 DomXSS漏洞

    听团里说WordPress又爆跨站漏洞了:" XSS漏洞在Jetpack和二十五默认主题影响百万WordPress用户 ",分析发现原来是jQuery老版本的DOM XSS漏洞[错 ...

  5. Linux系列(3) - ls

    作用 ls:查询目录中内容 格式 ls [选项] [文件或目录] 选项 描述 -a 显示所有文件,包括隐藏文件.隐藏文件是.开头的 -l 显示详细信息:ls -l简写为ll,使用频率很高 -d 查看目 ...

  6. Linux系列(33)- rpm命令管理之RPM包校验提取(5)

    校验 格式 rpm -V 已安装的包名 选项: - -V:校验指定RPM包中的文件(verify) 例子 rpm -V httpd 后, 无任何提示, 代表该文件没有被做任何修改 # 判断本地的apa ...

  7. 4.深入TiDB:执行计划执行过程详解

    本文基于 TiDB release-5.1进行分析,需要用到 Go 1.16以后的版本 转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/ ...

  8. python pip 安装使用国内镜像源

    国内镜像源 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 ...

  9. 鸿蒙内核源码分析(信号消费篇) | 谁让CPU连续四次换栈运行 | 百篇博客分析OpenHarmony源码 | v49.04

    百篇博客系列篇.本篇为: v49.xx 鸿蒙内核源码分析(信号消费篇) | 谁让CPU连续四次换栈运行 | 51.c.h .o 进程管理相关篇为: v02.xx 鸿蒙内核源码分析(进程管理篇) | 谁 ...

  10. Visual Studio 6.0 在 Windows 10 下崩溃的一种解决方法

    Visual Studio 6.0 下载地址: https://winworldpc.com/product/microsoft-visual-stu/60 安装步骤: https://www.cod ...