Ubuntu14.04下Loopus工具编译安装

Ubuntu14.04下Loopus工具编译安装

本文主要讨论loopus工具在Ubuntu14.04(64位)系统中的编译安装。

关于Loopus工具

一个用于计算C程序中函数循环上界分析和非递归函数复杂度分析的工具,基于llvm框架,依赖z3,由维也纳科技大学FORSYTE团队开发,链接:https://forsyte.at/software/loopus/ ,这里我们采用Source Code版本。

安装步骤

主要参考文件夹LoopusSource中的install文档。

LLVM+Clang安装

LLVM对系统的要求高。我尝试过Ubuntu16.04 64位,编译失败;Ubuntu14.04 32位,编译失败;最终是在Ubuntu14.04 64位上安装成功。需要注意的是Ubuntu14.04(64位)安装时需要选择高级安装,这样系统集成的依赖包多。
下载llvm-3.5.1和clang-3.5.1的压缩包,链接:http://releases.llvm.org/download.html#3.5.1,必选Clang source code和LLVM source code,可选Compiler RT source code和Clang Tools Extra。
安装过程如下:
1.解压 tar -zxvf filename,得到相应文件夹;
2.进行文档组织,命令行如下:

mv cfe-xxx llvm-3.5.1.src/tools/clang
mv compiler-rtxxx llvm-3.5.1.src/projects/compiler-rt
mv clang-xxx llvm-3.5.1.src/tools/clang/tools/extra

3.编译,在llvm-3.5.1.src同级目录中运行

mkdir build-3.5.1
cd build-3.5.1
../llvm-3.5.1.src/configure --enable-optimized --disable-assertions --enable-targets=host-only (optional --prefix=...)			此处需要sudo 安装g++
make -j4 REQUIRES_RTTI=1
sudo make install

-j4使用四核编译,加快编译速度,可根据实际内核数改变数值
可参考:http://releases.llvm.org/3.5.1/docs/GettingStarted.html.

z3安装

Ubuntu系统若没有进行高级安装,此处编译会大量报错,错误类型:can not be used when making a shared object; recompile with -fPIC
1.下载地址:https://github.com/Z3Prover/z3/releases/tag/z3-4.3.1.

2.解压后在z3文件夹中运行:

autoconf			此处需要sudo安装autoconf
./configure
python scripts/mk_make.py
cd build
make -j4
sudo make install

之后会用到libz3.so所在路径

Loopus安装

当前两步顺利时,这一步的亦自然过渡。
1.解压文件,在文件中运行如下命令:

autoconf/AutoRegen.sh			第一个path:xxx/llvm-3.5.1.src 第二个路径:xxx/build-3.5.1
./configure --with-z3-lib-path=/path/to/z3/lib(上面提到的libz3.so所在文件夹路径) --enable-manageZ3Memory --enable-releaseVersion
 make -j4
 sudo make install

path中xxx是全部路径,根据实际情况填写,不能省略。
到这里,loopus就已经在系统中建立起来了。

Loopus使用

对一个C程序:

编译
clang -g -emit-llvm -c file.c

得到一个file.bc文件

Loopus分析
loopus file.c.bc

可选参数用 loopus --help 查看。

示例
#include <stdio.h>
int main()
{
	int i;
	for(i=0;i<=10;i++)
		{
			printf("hello world!");
		}
	return 0;
}

对上述C程序,运用Loopus工具,其结果如下:
结果展示

以上就是Ubuntu14.04 64位编译安装Loopus工具的流程。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值