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
原文地址:https://www.cnblogs.com/--lr/p/14810502.html