klee+Ubuntu16.04+llvm3.9安装

xiaoxiao2021-02-28  79

Klee 安装方法

为了安装klee我尝试了各种版本安装,终于安装成功

环境:ubuntu16.04  llvm-3.9 clang-3.9

2018.7.27

装llvm-3.9 的我当初真的是无知啊,人家klee现在适配的才到llvm-3.8. 我当初竟然装了llvm3.9.  用3.9装的klee  -posix-runtime功能是不好使的。所以大家,还是先装llvm3.4 然后再装klee吧,以下装llvm部分的内容请忽略掉。若是装llvm3.8 可以参考一下下面的步骤。

Klee 官网安装教程http://klee.github.io/build-llvm34/

参考:http://terenceli.github.io/技术/2017/06/08/klee-newbie

步骤:

1.依赖库安装

$ sudo apt-get install build-essential curl libcap-dev git cmake libncurses5-dev python-minimal python-pip unzip

2.安装LLVM 需要注意:

对于不同版本的ubuntu应该到 LLVM Package Repository 找到对应版本的。写入source.list 中。

以16.04 为例:

deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.9 main deb-src http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.9 main

添加repository key并下载llvm 3.9的packages

$ wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key|sudo apt-key add -   $ sudo apt-get update   $ sudo apt-get install clang-3.9 lldb-3.9

需要在~/.bashrc里面改一下PATH:(注意不要在命令行中配置,否则每次开机都得配置一遍)

export PATH="/usr/lib/llvm-3.9/bin:$PATH"

3.安装约束解释器:

选择的是STP,根据官网中的文档直接配置即可。

4.可选项暂时未配置

5.获得KLEE 资源时,由于直接使用官网的安装包,出现了如下错误。

/home/test/klee/include/klee/Internal/Support/FloatEvaluation.h: In function ‘bool klee::floats::isNaN(uint64_t,unsigned int)’:/home/test/klee/include/klee/ Internal/Support/FloatEvaluation.h:135:25: error: ‘IsNAN’ is not a member of ‘llvm’case FLT_BITS: return llvm::IsNAN( UInt64AsFloat(l) );^/home/test/klee/include/klee/Internal/Support/FloatEvaluation.h:136:25: error: ‘IsNAN’ is not a member of ‘llvm’case DBL_BITS: return llvm::IsNAN( UInt64AsDouble(l) );^/home/test/klee/lib/Core/Executor.cpp: In member function ‘void klee::Executor::executeCall(klee::ExecutionState&, klee::KInstruction*, llvm::Function*, std::vector<klee::ref<klee::Expr> >&)’:/home/test/klee/lib/Core/Executor.cpp:1403:21: error: ‘RoundUpToAlignment’ is not a member of ‘llvm’size = llvm::RoundUpToAlignment(size, 16);

卡在这个地方好几天,最终参考:http://terenceli.github.io/技术/2017/06/08/klee-newbie

使用其他人提供的llvm 3.9 的pr

$ git clone https://github.com/jirislaby/klee.git $ cd klee $ git branch -a git checkout remotes/origin/llvm_39

6.配置KLEE

$ mkdir klee_build_dir $ cd klee_build_dir $ cmake -DENABLE_SOlVER_STP=ON -DENABLE_SYSTEM_TESTS=OFF -DENABLE_UNIT_TESTS=ON ../klee

由于未配置可选项所以要将这些关闭。在cmake的过程中,会提示关闭。

并且若提示找不到Doxygen,则需要安装

sudo apt-get install doxygen

7.编译安装klee

 

make

若出现找不到liblibLLVM-3.9.so.so的情况,参考:http://terenceli.github.io/技术/2017/06/08/klee-newbie

make[2]: *** No rule to make target '/usr/lib/llvm-3.9/lib/liblibLLVM-3.9.so.so', needed by 'bin/gen-random-bout'.  Stop.

则利用软链接。

$ ln -L libLLVM-3.9.so liblibLLVM-3.9.so.so

最后再

$ sudo make install

 

转载请注明原文地址: https://www.6miu.com/read-78844.html

最新回复(0)