ubuntu18.04安装klee

参考网址:
CSDN:https://blog.csdn.net/goto2091/article/details/86602063
官网:http://klee.github.io/build-llvm60/
安装环境:ubuntu18.04
安装步骤:
安装依赖包:
sudo apt-get install build-essential
在这里插入图片描述
在这里插入图片描述

sudo apt-get install curl libcap-dev git cmake libncurses5-dev
在这里插入图片描述
在这里插入图片描述

sudo apt-get install python-minimal python-pip unzip libtcmalloc-minimal4

在这里插入图片描述
在这里插入图片描述

sudo apt-get install libgoogle-perftools-dev
在这里插入图片描述
在这里插入图片描述

安装LLVM6.0
sudo apt-get install clang-6.0 llvm-6.0 llvm-6.0-dev llvm-6.0-tools
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安装求解器
求解器有很多种,主流的有STP、Z3
这里我们安装Z3
git clone https://github.com/Z3Prover/z3.git
在这里插入图片描述

cd Z3
在这里插入图片描述

python scripts/mk_make.py
在这里插入图片描述
在这里插入图片描述

cd build
在这里插入图片描述

Make
在这里插入图片描述

sudo make install
在这里插入图片描述

安装uclibc和POSIX环境
git clone https://github.com/klee/klee-uclibc.git
在这里插入图片描述
在这里插入图片描述

cd klee-uclibc
在这里插入图片描述
在这里插入图片描述

./configure --make-llvm-lib
在这里插入图片描述

找不到llvm-config:添加llvm-config路径解决
./configure --make-llvm-lib --with-llvm-config /usr/bin/llvm-config-6.0
在这里插入图片描述

make -j2
在这里插入图片描述

cd …

下载Google test sources
curl -OL https://github.com/google/googletest/archive/release-1.7.0.zip
在这里插入图片描述

unzip release-1.7.0.zip
在这里插入图片描述
在这里插入图片描述

安装lit
pip install lit
在这里插入图片描述

安装tcmalloc
sudo apt-get install libtcmalloc-minimal4 libgoogle-perftools-dev
在这里插入图片描述

下载klee源代码 并且配置
git clone https://github.com/klee/klee.git
在这里插入图片描述

mkdir klee_build_dir
在这里插入图片描述

cd klee_build_dir
在这里插入图片描述

$ cmake <CMAKE_OPTIONS> <KLEE_SRC_DIRECTORY>
现在,进入build目录并运行CMake来配置KLEE,其中<KLEE_SRC_DIRECTORY>是您在步骤8中克隆的KLEE git存储库的路径。
<CMAKE_OPTIONS>是配置选项。 这些都记录在README-CMake.md中。
例如,如果您要使用STP,POSIX运行时,klee-uclibc和单元测试来构建KLEE,那么命令行将类似于以下内容:(来自于官网)
cmake
-DENABLE_SOLVER_STP=ON
-DENABLE_POSIX_RUNTIME=ON
-DENABLE_KLEE_UCLIBC=ON
-DKLEE_UCLIBC_PATH=<KLEE_UCLIBC_SOURCE_DIR>
-DENABLE_UNIT_TESTS=ON
-DGTEST_SRC_DIR=<GTEST_SOURCE_DIR>
-DLLVM_CONFIG_BINARY=<PATH_TO_llvm-config-6.0>
-DLLVMCC=<PATH_TO_clang-6.0>
-DLLVMCXX=<PATH_TO_clang+±6.0>
<KLEE_SRC_DIRECTORY>
其中<KLEE_UCLIBC_SOURCE_DIR>是指向klee-uclibc源代码树的绝对路径,而<GTEST_SOURCE_DIR>是指向Google Test源代码树的绝对路径。
我们输入得是:
cmake -DENABLE_SOLVER_Z3=ON
-DENABLE_POSIX_RUNTIME=ON
-DENABLE_KLEE_UCLIBC=ON
-DKLEE_UCLIBC_PATH=…/klee-uclibc
-DGTEST_SRC_DIR=…/googletest-release-1.7.0
-DENABLE_SYSTEM_TESTS=ON
-DENABLE_UNIT_TESTS=ON
…/klee
报错如下:
在这里插入图片描述

找不到llvm-config,因为我们使用的是llvm-config 6.0因此我们建立一个软连接
在这里插入图片描述

此时重新cmake KLEE,发现仍有错误
在这里插入图片描述

提示安装SQLite3 接下来我们进行安装
在这里插入图片描述

这样建立后重新编译仍然显示SQLite3没有,因此我们换一种安装方法,使用如下命令:
sudo apt-get install sqlite3 libsqlite3-dev
在这里插入图片描述

接着重新编译,还是出现问题
在这里插入图片描述
这个问题的解决办法有两个:
①去网上找到缺少的这个库加进去
②重新下载一个klee源码,进行以上步骤
时间原因,没有接着解决这个问题,换了另外一种思路,在docker上安装klee。
注意:
使用绝对路径有可能会编译失败,因此使用相对路径
如果找不到doxygen,那就进行安装
sudo apt-get install doxygen
在这里插入图片描述

如果缺乏zlib,那么编译也会失败
sudo apt-get install zlib1g-dev
在这里插入图片描述

附上:
使用docker安装klee
$sudo apt install docker
在这里插入图片描述

$sudo apt install docker.io
在这里插入图片描述
在这里插入图片描述

$docker pull klee/klee

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

$ cd klee

$ docker build -t klee/klee .
//创建一个klee的docker容器

$ docker run --rm -ti --ulimit=‘stack=-1:-1’ klee/klee

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值