SeaHorn的安装

SeaHorn是什么?

SeaHorn是一款验证软件

写作的目的

因为我换了好长时间才成功安装,你应该能想象得到这个好久是多少天了吧

github

https://github.com/seahorn/seahorn
这篇博客是我的吐槽和我一些经验的分享,这个软件小众,我是做研究用的,我估计应该不会有人再去安装这个吧。
这个软件提供了Docker安装,如果你只是需要用这个软件做验证,那么你完全可以使用docker来傻瓜操作。
这个软件是依赖于LLVM的,而且GitHub中说是依赖于LLVM5这个版本的,对于这样的说法,我们应该谨慎一点,因为使用高版本后可能出现一些莫名奇妙的错误,我选择了5.0这个版本,没想到最后还是中枪了,这个之后说。说到说到版本,如果有做android和机器学习的同学肯定对版本的不兼容有深刻的体会,我一同学使用tensorflow调试代码,花费了好久,后来把github中的readme仔仔细细阅读了之后,才发现,人家是支持特定版本的,卸载重装,搞定!!!
seahorn这类软件大多数都是makefile编译的,我不懂cmake,make这些区别,我做科研这么辛苦,也不想搞懂他,他对我而言只是个工具,我知道大体怎么用就行了。
按照readme中的方法是可以安装的,但是我却手贱,自己去官网上自己去网上下载了LLVM5.0。
再CLion配置中有提到一个额外库,我点进去发现,seahorn提供的llvm版本竟然是5.0.2。我真的没想到,按理说应该没事呀~~
最后再编译的过程中出现了gmpxx.h找不到的问题
这是因为gmp再编译的时候没有添加参数 --enable-cxx 这样编译出来的gmp就支持c++了。

最后

如果真有人需要这个软件,在安装过程中出现问题,可以查看Clion配置.md这个文件提供了另外一种安装参数的方法。

链接库

Seahorn安装需要一些第三方库,这些库已经提供了,就不要自己去单独安装了
库有Boost, Z3,LLVM5,Yices2
这些库全部都被打包在:https://github.com/seahorn/seahorn-ext-deps/releases/tag/5.0-deep-dev
编译的时候添加参数就可以免去很多麻烦。
添加参数

-DBOOST_ROOT=/home/liangle/seahorn/seahorn-deps/boost
-DLLVM_DIR=/home/liangle/seahorn/seahorn-deps/LLVM5/lib/cmake/llvm
-DZ3_ROOT=/home/liangle/seahorn/seahorn-deps/z3
-DZ3_HOME=/home/liangle/seahorn/seahorn-deps/z3
-DYICES2_ROOT=/home/liangle/seahorn/seahorn-deps/yices2

apt库

通过apt还需要再安装一些第三方库
1 sudo apt install llvm-5
2 sudo apt install libboost-dev
3 sudo apt install subversion
4 sudo apt install libgmp-dev libgmpxx4ldbl
5 sudo apt install libncurses5-dev ncurses-doc

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值