前言:
环境:乌班图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