本教程是在Linux环境下的安装教程,想要在Windows上安装,可以参考daikon官方文档。本人在Ubuntu上安装时,尽管有官方文档及网上其他大神教程的指导,却仍然频频报错,花了很长时间才安装成功。故在此记录,希望能给有需要的人提供帮助,如有错误,请批评指正。
在安装daikon之前需要装好jdk,daikon官网教程上建议安装jdk8或以上,Ubuntu安装jdk的具体教程网上有很多,此处不在详细介绍。
新建一个名为daikonparent文件夹,并打开
cd daikonparent
从网上下载daikon的包
wget http://plse.cs.washington.edu/daikon/download/daikon-5.7.2.tar.gz
解压文件
tar zxf daikon-5.7.2.tar.gz
至此,我们就有了一个 daikonparent/daikon-5.7.2/ 的子目录,下面开始配置环境变量(这里是根据我自己的Java环境配置的,你们视自己的情况定)
export DAIKONDIR=daikonparent/daikon-5.7.2
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:${DAIKONDIR}/java:$DAIKONDIR/daikon.jar
export PATH=${JAVA_HOME}/bin:$PATH
source $DAIKONDIR/scripts/daikon.bashrc
接下来开始编译daikon和其他工具
make -C $DAIKONDIR rebuild-everything
这里极有可能会报错,到时候可以看一下报什么错,一般都是缺少库或是依赖,缺少什么就下载什么,根据提示下载过后再次编译,还是报错的话可以先跳过,不用管
daikon 文件夹里自己有一个fjalar,但那个有点老,需要重新下载新的并覆盖
git clone https://github.com/codespecs/fjalar.git #将最新的fjalar替换之前daikon中的fjalar
cd $DAIKONDIR/daikon
make kvasir
在make过程中可能会出现以下问题及解决方案(此处参考其他大神博客,因为这几个问题正好我都碰到过):
Exception1:error,autogen.sh failed to run aclocal:No such file or directory
Reason1:丢失的aclocal是automake包的一部分,而其中某些包依赖与aclocal
Solution1:安装包automake。ubuntu:sudo apt-get install automake
Exception2:readelf.c:53:17: fatal error: bfd.h: No such file or directory
Reason2:it is most likely caused by the package binutils-dev not being installed
Solution2:安装包binutils-dev。ubuntu:sudo apt-get install binutils-dev
kvasir的安装经常会遇到错误,往往是缺乏某些数据包的依赖,对于百度提示信息命令行安装依赖即可。此外,经常会出现些莫名其妙的没有安装成功现象,此时删除fjalar替换其他版本多尝试几次。
make -C $DAIKONDIR/java dcomp_rt.jar # 可能会报错,dcomp_rt.jar is up-to date,需要把原来的jar文件删了即可
daikon安装到这就结束了,中间可能会报各种错,其实就是缺少各种包,缺什么下载什么就行了,安装结束了可以按照daikon教程,试着跑一下它自带的example检验一下。
至此,daikon就安装成功了