ubuntu 12.04 64位安装KLEE过程中遇到的问题

说明:按照官方文档 http://klee.github.io/getting-started/
基于LLVM 2.9 安装KLEE,中间遇到了一些问题。

问题一:llvm-gcc -v显示gcc-4.6.3

情况:Ubuntu 12.04 64bit系统安装后,修改为bupt的源,然后sudo apt-get update。当时网络环境不好,官网llvm-gcc 4.2版本无法下载,于是就sudo apt-get install llvm-gcc-4.6 了(用tab键,自动提示的4.6版本),后来换了网络环境又装了一遍llvm-gcc-4.2。前三步均没有问题,到了安装uclibc时出现错我,第6步安装KLEE也无法通过。
错误如图:
/bin/llvm-dis invalid bitcode signature
Error:Failed to find a working LLVM bitcode compiler.
这里写图片描述

Maybe LLVM versions do not math
这里写图片描述

解决方案:

sudo apt-get remove llvm-gcc-4.6

卸载 llvm-gcc-4.6后重新安装llvm-gcc-4.2(第二步:build LLVM 2.9)

问题二:安装stp时候可能需要自己新建install目录

  cd stp-r940/
  mkdir install
  ./scripts/configure --with-prefix='pwd'/install --with-cryptominisat2
  make OPTIMIZE=-O2 CFLAGS_M32= install  这里是O2不是零2

问题三:full-path-to-xxxxx

$ ./configure --with-llvm=full-path-to-llvm --with-stp=full-path-to-stp/install --with-uclibc=full-path-to-klee-uclibc --enable-posix-runtime

这里面的full-path-to-xxxx要写相应的全目录,比如我的full-path-to-llvm对应为/home/[用户名]/projects/llvm-2.9

问题四: Unable to use stp/c_interface.h header

configure: error:Unable to use stp/c_interface.h header

这里写图片描述
(图片红字有误,是在安装KLEE时候出现的错误)
解决方案:

cd /usr/include/   (这里是系统的usr/include)
sudo mkdir stp
sudo cp ~/projects/stp-r940/src/c_interface/c_interface.h ./   (额~貌似我没有拷贝到stp中,直接拷贝到了include目录下,你可以拷贝到stp文件夹下试试)

问题五:make check假死状态

这里写图片描述
(到56%时候可能需要一段时间,但是没死,虚拟机也没有当机,当时我以为虚拟机崩了就重启了)

问题六:测试时找不到头文件klee.h

这里写图片描述
error: klee/klee.h: No such file or directory
解决方法:
llvm-gcc -I ../../include -emit-llvm -c -g get_sign.c
Testing a Simple Regular Expression Library中提到编译时要把/klee/include/库链接上(使用-I 参数)

ubuntu12.04-32位,安装KLEE及使用工具过程中遇到的问题 也提到了这个问题,值得借鉴)

.bashrc最终添加的全局变量

当你发现报的错误为找不到某个文件时,可能是你的全局变量没配置。
最后我的.bashrc添加了一下内容:

export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
export PATH=$PATH:/home/[用户名]/projects/llvm-gcc4.2-2.9-x86_64-linux/bin
export PATH=$PATH:/home/[用户名]/projects/llvm-2.9/Release+Asserts/bin
export PATH=$PATH:/home/[用户名]/projects/klee/Release+Asserts/bin   (如果此全局变量不配置,klee运行时应该是找不到)
export LD_LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.6.3
export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值