在windows下使用NiCad

NiCad介绍

NiCad Clone Detector 是一个灵活的基于 TXL 的混合语言敏感/文本比较软件克隆检测系统,由James R. Cordy和Chanchal K. Roy开发,最初是基于Chanchal的博士论文工作。NiCad5是一个重要的新实现,有许多重要的改进和优化。
NiCad克隆检测是一个可扩展的、灵活的克隆检测工具,设计用于实现NiCad(自动检测接近遗漏的有意克隆)混合克隆检测方法,它是一种方便、易于使用的命令行工具,可以很容易地嵌入IDE和其他环境中。它接受一个或多个源目录作为输入,以检查克隆和指定要进行的规范化和过滤的配置文件,并以XML形式提供输出结果,以便于分析,同时以HTML web页面报告的形式提供输出结果,以便于浏览。
NiCad5处理一系列的语言,包括C、Java、Python、c#、PHP、Ruby、ATL和WSDL,并提供一系列的规范化、过滤器和抽象。它被设计为使用基于组件的插件体系结构易于扩展。它可以扩展到非常大的系统,并被用来分析,例如,所有47个FreeBSD版本(6000万行)作为一个单一的系统。
源码地址:http://www.txl.ca/txl-nicaddownload.html

在windows中安装Cygwin

NiCad适用于 Linux, Mac OS X, Cygwin and MinGW 等环境。本人尝试过在VMware中通过Ubuntu来使用NiCad,可是出现了以下错误,无法解决,因此改用在windows安装Cygwin来实现NiCad的使用。

tpc -mUNIX64 -DHUGE -O -A -q4 cloneclasses.t
make: tpc: Command not found
Makefile:40:recipe for target 'cloneclasses.c' failed
make: *** [cloneclasses.c] Error 127

Cygwin介绍

Cygwin是GNU和开放源代码工具的大量集合,它们提供的功能类似于 Windows上的 Linux发行版。提供实质性POSIX API功能的DLL(cygwin1.dll)。简而言之就是’Get that Linux feeling - on Windows’.
Cygwin官网:https://cygwin.com/index.html

安装Cygwin

  1. 首先到Cygwin官网(https://cygwin.com/index.html)安装对应的版本。
  2. 点击安装setup.exe,点击“下一步”。
  3. 出现"Choose installation type"的界面,选择"Install from Internet",然后继续点击“下一步”。
  4. 选择Cygwin的安装目录,点击“下一步”。
  5. 选择网络连接方式。选择"Direct Connection",然后点击“下一步”。
  6. 需要选择一个服务器,之后是从该服务器下载对应的安装所需的模块文件。直接选择第一个就行,然后点击“下一步”。
  7. 选择需要安装的模块。选择make和gcc-core安装,版本随意就行,点击“下一步”。

  8. Cygwin安装完成,之后在安装目录下运行 Cygwin.bat 即可。

安装TXL和NiCad

要在系统上运行NiCad5,需要先安装 FreeTXL 10.7或更高版本。FreeTXL可以从以下网址安装:http://www.txl.ca/txl-download.html

  1. 选择TXL的Cygwin版本,点击"I Agree"安装。
  2. 在此网址安装NiCad5:http://www.txl.ca/txl-nicaddownload.html
  3. 为了之后操作方便在Cygwin的 home/xxx/ 目录中新建一个 nicad 目录。
  4. 将解压好的TXL和NiCad5放到 nicad 中。

运行和使用NiCad

运行NiCad

  1. 运行Cywin目录下的 Cygwin.bat
  2. 进入到 txl10.7.cywin64 目录下,运行./InstallTxl
  3. 进入到 NiCad-5.2 目录下,然后运行make指令。

使用NiCad

  1. 进入到 NiCad-5.2 目录下,输入./nicad5查看命令格式。目前NiCad可以处理粒度为 functionsblocks ;可以处理的语言为 C、C# 、Java、Python、PHP、Ruby、WSDL 、和 ATL
  2. 这里我选择运行在 home/xxx/nicad/experiments/ 下的克隆检测文件,选择的粒度为 functions ,语言为 java ,然后通过./nicad5 functions java ../experiments/SubjectSys_JFreeChart/jfreechart-1.0.0 default-report指令来实现,这里的default-report是指使用 NiCad里面的 configdefault-report 配置文件,也可以自己定义使用,详细请看 config 的说明。
  3. 运行成功后就会在克隆检测文件的目录下生产对应的 xml 文件。

NiCad的其他设置问题

关于NiCad的其他设置问题,就不在这里详细地说明了,可以通过TXL网站上的NiCad论坛找到答案:http://www.txl.ca/forum/viewforum.php?f=28

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值