zoukankan      html  css  js  c++  java
  • klee本地环境搭建LLVM9+Ubuntu18.04

    前言:

    环境:乌班图18.04和LLVM-9下安装klee-2.3

    操作系统目前崩溃了三次,重装了三次,klee也跟着重装了三次,可以说现在装klee环境得心应手了,有问题可以在评论留言,如果我见过的错误,一定帮忙解决。

    一、基本库安装

    1 sudo apt-get install build-essential curl libcap-dev git cmake libncurses5-dev python-minimal python-pip unzip libtcmalloc-minimal4 libgoogle-perftools-dev libsqlite3-dev doxygen

    二、Ubuntu18.04特有的库安装

    1 sudo apt-get install python3 python3-pip gcc-multilib g++-multilib 

    三、安装Wllvm

    1 pip3 install lit tabulate wllvm

    四、安装LLVM-9

    1 sudo apt-get install clang-9 llvm-9 llvm-9-dev llvm-9-tools

    五、安装STP约束求解器

    5.1 安装STP依赖

    1 sudo apt-get install cmake bison flex libboost-all-dev python perl zlib1g-dev minisat

    5.2 安装STP

    1 $ git clone https://github.com/stp/stp.git
    2 $ cd stp
    3 $ git checkout tags/2.3.3
    4 $ mkdir build
    5 $ cd build
    6 $ cmake ..
    7 $ make
    8 $ sudo make install

    5.3 设置一下参数运行无限制

    1 ulimit -s unlimited

    六、下载谷歌测试集

    1 $ curl -OL https://github.com/google/googletest/archive/release-1.7.0.zip
    2 $ unzip release-1.7.0.zip

    七、下载klee内置库uclibc(./configure --make-llvm-lib --with-llvm-config /usr/bin/llvm-config-9)需要添加llvm-config-9的路径

    $ git clone https://github.com/klee/klee-uclibc.git  
    $ cd klee-uclibc  
    $ ./configure --make-llvm-lib --with-llvm-config /usr/bin/llvm-config-9
    $ make -j2  
    $ cd .. 

    八、下载klee源码

    1 git clone https://github.com/klee/klee.git

    九、build libc++支持C++

    <LIBCXX_DIR>是第七步中uclibc的绝对路径
    1 cd klee
    2 LLVM_VERSION=9 SANITIZER_BUILD= BASE=<LIBCXX_DIR> REQUIRES_RTTI=1 DISABLE_ASSERTIONS=1 ENABLE_DEBUG=0 ENABLE_OPTIMIZED=1 ./scripts/build/build.sh libcxx

    十、构建klee (涉及多个路径)

     1 mkdir build
     2 cd build
     3 cmake 
     4   -DENABLE_SOLVER_STP=ON 
     5   -DENABLE_POSIX_RUNTIME=ON 
     6   -DENABLE_KLEE_UCLIBC=ON 
     7   -DKLEE_UCLIBC_PATH=<KLEE_UCLIBC_SOURCE_DIR> 
     8   -DENABLE_UNIT_TESTS=ON 
     9   -DGTEST_SRC_DIR=<GTEST_SOURCE_DIR> 
    10   -DLLVM_CONFIG_BINARY=<PATH_TO_llvm-config-9> 
    11   -DLLVMCC=<PATH_TO_clang-9> 
    12   -DLLVMCXX=<PATH_TO_clang++-9> 
    13   <KLEE_SRC_DIRECTORY>

    十一、开始安装

    1 make
    2 sudo make install
  • 相关阅读:
    Codeforces Round #256 (Div. 2/B)/Codeforces448B_Suffix Structures(字符串处理)
    【android】优秀的UI资源站点集合
    升级iOS8系统后,保险箱Pro、私人保险箱、私密相冊打开就闪退的官方解决方式
    js产生随机数
    java实现各种数据统计图(柱形图,饼图,折线图)
    Matlab画图-非常具体,非常全面
    Lucene教程具体解释
    NAND FLASH
    Jenkins(二)
    iOS 本地通知
  • 原文地址:https://www.cnblogs.com/--lr/p/14810502.html
Copyright © 2011-2022 走看看