美文网首页
llvm编译

llvm编译

作者: 遥想公瑾当年 | 来源:发表于2019-11-19 21:36 被阅读0次

    一 升级gcc

    wget -c http://mirror.koddos.net/gcc/releases/gcc-9.2.0/gcc-9.0.2.tar.xz
    tar xvf gcc-9.0.2.tar.xz
    cd gcc-9.0.2
    ./contrib/download_prerequisites
    ./configure --prefix=/usr/local/gcc-9.2.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib 
    make -j 4
    make install
    #修改环境变量
    

    二安装z3

    wget https://github.com/Z3Prover/z3/archive/z3-4.8.6.tar.gz
    tar -zxvf z3-4.8.6.tar.gz
    cd z3-4.8.6
    python scripts/mk_make.py
    cd build
    make
    make install
    

    安装llvm

    wget http://releases.llvm.org/9.0.0/llvm-9.0.0.src.tar.xz
    wget http://releases.llvm.org/9.0.0/cfe-9.0.0.src.tar.xz
    wget http://releases.llvm.org/9.0.0/compiler-rt-9.0.0.src.tar.xz
    wget http://releases.llvm.org/9.0.0/clang-tools-extra-9.0.0.src.tar.xz
    tar xvf llvm-9.0.0.src.tar.xz
    tar xvf cfe-9.0.0.src.tar.xz
    tar xvf compiler-rt-9.0.0.src.tar.xz
    tar xvf clang-tools-extra-9.0.0.src.tar.xz
    
    mv cfe-9.0.0.src clang
    mv clang/ llvm-9.0.0.src/tools/
    
    mv clang-tools-extra-9.0.0.src extra
    mv extra/ llvm-9.0.0.src/tools/clang/
    
    mv compiler-rt-9.0.0.src compiler-rt
    mv compiler-rt llvm-9.0.0.src/projects/
    
    mkdir build
    cd build
    cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/local/clang -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On ..
    make -j 4
    make install
    

    可能遇到的问题

    一 cound not find Z3(found /usr/lib/libz3.so)
    vim /etc/ld.so.conf
    /usr/lib
    ldconfig -v

    二 gcc version


    image.png

    升级后卸载旧的:

    yum remove gcc
    

    三 glibcxx_3.4.26 not found


    image.png
    [root@ptool local]# find / -name libstdc++.so.6
    /opt/gcc-9.2.0/x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    /opt/gcc-9.2.0/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    /opt/gcc-9.2.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
    /usr/lib64/libstdc++.so.6
    /usr/lib/libstdc++.so.6
    /usr/local/gcc-9.2.0/lib64/libstdc++.so.6
    #替换旧的
    cp /usr/local/gcc-9.2.0/lib64/libstdc++.so.6 /usr/lib
    cp /usr/local/gcc-9.2.0/lib64/libstdc++.so.6 /usr/lib64
    

    相关文章

      网友评论

          本文标题:llvm编译

          本文链接:https://www.haomeiwen.com/subject/vvuzvctx.html