zoukankan      html  css  js  c++  java
  • 在Linux CentOS上编译并安装Clang 3.5.0

    编译CoreCLR需要Clang 3.5,而CentOS上安装的是Clang 3.4.2(yum repos中最新版也是这个),只能自己手工编译LLVM的源代码进行安装。

    (注:CentOS的版本是6.6)

    一、安装libstdc++4.7

    (注:如果是CentOS 7.0,不需要这步)

    wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
    yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
    ln -s /opt/rh/devtoolset-2/root/usr/bin/* /usr/local/bin/

    如果不安装,在configure配置编译选项时会出现下面的错误提示:

    We detected a missing feature in the standard C++ library that was known to be
    missing in libstdc++4.6 and implemented in libstdc++4.7. There are numerous
    C++11 problems with 4.6's library, and we don't support GCCs or libstdc++ older
    than 4.7.

    二、安装Python 2.7.9

    (注:如果是CentOS 7.0,不需要这步)

    CentOS 6.6自带的是Python 2.6.6,而编译llvm需要Python 2.7以上。

    1)安装编译Python需要的包包

    yum install zlib-devel
    yum install bzip2-devel
    yum install openssl-devel
    yum install ncurses-devel
    yum install sqlite-devel

    2)下载并解压Python 2.7.9的源代码

    cd /opt
    wget --no-check-certificate https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz
    tar xf Python-2.7.9.tar.xz
    cd Python-2.7.9

    3)编译与安装Python 2.7.9

    ./configure --prefix=/usr/local
    make && make altinstall

    4)将python命令指向Python 2.7.9

    ln -s /usr/local/bin/python2.7 /usr/local/bin/python

    三、添加交换分区

    如果编译的机器内存比较小,建议添加交换分区。我当时测试的机器只有1G内存,在编译过程中出现了“c++: internal compiler error: Killed (program cc1plus)”错误。

    1)创建并激活交换文件(比如2G): 

    dd if=/dev/zero of=/swapfile bs=1k count=2048000
    mkswap /swapfile
    swapon /swapfile

    2)修改 /etc/fstab 文件让交换文件启动时自动加载,添加如下内容: 

    /swapfile               swap                    swap    defaults        0 0

    四、编译LLVM

    1)下载llvm的源代码

    http://llvm.org/releases/3.5.0/llvm-3.5.0.src.tar.xz
    mv llvm-3.5.0.src llvm

    2)下载clang的源代码

    cd llvm/tools
    wget http://llvm.org/releases/3.5.0/cfe-3.5.0.src.tar.xz
    tar xf cfe-3.5.0.src.tar.xz
    mv cfe-3.5.0.src clang

    3)下载compiler-rt的源代码

    cd ../projects
    wget http://llvm.org/releases/3.5.0/compiler-rt-3.5.0.src.tar.xz
    tar xf compiler-rt-3.5.0.src.tar.xz
    mv compiler-rt-3.5.0.src compiler-rt

    4)配置编译选项

    cd ..
    ./configure --enable-optimized CC=gcc CXX=g++

    5)编译llvm

    make -j2

    编译成功后的提示:

    llvm[0]: ***** Completed Release+Asserts Build

    6)安装编译好的llvm

    make install

    会安装在/usr/local/bing中

    7)检查clang的版本

    # clang --version
    clang version 3.5.0 (tags/RELEASE_350/final)

    如果还是旧版本,需要将/usr/bin/clang指向clang 3.5.0:

    ls -s /usr/local/bin/clang /usr/bin/clang

    【相关链接】

    如何在CentOS上安装libstdc++4.7

    在Linux CentOS 6.6上安装Python 2.7.9 

  • 相关阅读:
    Spring AOP获取拦截方法的参数名称跟参数值
    mybatis generator逆向工程自动生成带中文注释修改版(添加了实体类注释)文末附有git下载地址
    关于Java编写多行注释遇到方法字符串中正好也有注释符号产生冲突的解决办法
    SpringBoot入门学习以及整合MyBatis
    IO跟NIO的区别
    redis的配置文件详解redis.conf
    Redis入门基础内容(转载整理非原创)
    深入网络协议来理解数据传输三(http协议详解)
    深入网络协议来理解数据传输二(转载整理)
    Python编写ATM(初级进阶)
  • 原文地址:https://www.cnblogs.com/dudu/p/4294374.html
Copyright © 2011-2022 走看看