Bitblaze静态模块Vine的安装

安装环境:

ubuntu-11.10(该版本在VMware7.0下可以成功安装VMware tools,但ubuntu-12.04不行)

安装过程:

解压vine-1.0.tar.gz后进入文件vine-1.0,在其doc目录下有文件install-vine-release.sh,提供了所有安装命令,

先是安装编译vine需要的各种软件,然后./configure和make(系统默认gcc版本为gcc-4.6.1)

但执行到sudo make会出现下面错误

In file included from./disasm/asm_program.cpp:16:0:

/usr/include/libiberty.h:106:36: error: newdeclaration ‘char* basename(const char*)’

/usr/include/string.h:603:28: error:ambiguates old declaration ‘const char* basename(const char*)’

......

编辑文件libasmir/src/disasm/asm_program.cpp,在#include"libiberty.h"前添加:

#define HAVE_DECL_BASENAME 1

再次sudo make,又出现新的错误:

./vex/irtoir-i386.cpp: In function‘std::string reg_offset_to_name(int)’:

./vex/irtoir-i386.cpp:269:14: error: a castto a type other than an integral or enumeration type cannot appear in aconstant-expression

……

这其实是offsetof宏定义有问题,offset用于计算结构体成员在该结构体中的偏移,看了下vine的定义也没啥问题。

索性在头文件libvex_basictypes.h使用offset的代码前面添加:

#include <stddef.h>

用系统的offsetof定义取代vine的定义

(grep –rl offsetof ~/vine-1.0  可以查找所有含offsetof的文件)

再次sudo make就可以通过了(时间会有点长)。

这里给出一个已编译好的版本供下载

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值