Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2176074
  • 博文数量: 436
  • 博客积分: 9833
  • 博客等级: 中将
  • 技术积分: 5558
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-29 10:27
文章存档

2013年(47)

2012年(79)

2011年(192)

2010年(118)

分类: LINUX

2012-12-23 11:56:45

Ubuntu下安装SPAN

Linux版本必须高于2.6.31

将压缩文件safari.tardb-5.2.42.tar.gz复制到home自己的目录下,并解压到当前目录

tar -xf safari.tar

tar -xf db-5.2.42.tar.gz

 

安装BerkeleyDB

db-5.2.42中的build_unix目录下执行以下命令:

../dist/configure --enable-cxx --enable-stl

如果执行失败,使用 chmod +x ../dist/configureconfigure文件增加可执行权限。

其中--enable-cxx选项表示在生成C语言接口的同时,也生成C++语言接口。--enable-stl表示增加对模板类库的支持。

如果出现configure: error: C++ preprocessor “/lib/cpp” fails sanity 
     check See `config.log’ for more details

       运行sudo apt-get install build-essential

make

进行编译

Make install

如果出现mkdir: cannot create directory `/usr/local/BerkeleyDB.5.2': Permission denied的错误或是其他权限问题,则将权限切换至超级用户,输入su,如果出现如下错误:su: Authentication failure

解决办法:1.sudo passwd root

2.Enter new UNIX password:

3.Retype new UNIX password:

4.passwd:password updated successfully

etc/ld.so.conf.d目录下,创建BerkeleyDB-5-2.conf文件,在文件里加上/usr/local/BerkeleyDB.5.2/lib,在终端下执行ldconfig更新。

 

安装、测试SPAN

safari/instrument/Debug目录下:

make

生成libsafari.a文件

 

safari/analysis/Debug目录下:

make

生成执行文件analysis

 

编写程序,因为执行时间在100ms一下的程序可能出的结果不准确,因此要考虑到程序的执行时间,试的时候可以写大循环。(以下命令以程序main.c为例)

 

gcc main.c -c -finstrument-functions

生成main.o

 

cp main.o safari/instrument/Debug

main.o复制到safari/instrument/Debug目录下

 

gcc main.o libsafari.a /usr/local/BerkeleyDB.5.2/lib/libdb-5.2.so

生成a.out

 

./a.out

运行a.out,生成my_db.db

但是可能会出现Segmentation fault这个错误,还没有解决方法,但是对运行的结果好像不影响,还是能显示程序的执行时间和CPU功耗。

 

cp my_db.db ../../analysis/Debug/

my_db.db 复制到safari/analysis/Debug目录下

 

./analysis

运行结果:

Estimated power may not be accurate if function execution time is less than 100 millisec

Address 8048b54, ID 17340, avg exec time   362 ms, cpu  1708 mW, memory     0 mW

 

阅读(1445) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~