六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 90|回复: 0

Centos 6.0 源码 编译 安装 bochs

[复制链接]

升级  49.33%

32

主题

32

主题

32

主题

秀才

Rank: 2

积分
124
 楼主| 发表于 2013-1-16 00:20:19 | 显示全部楼层 |阅读模式
BOCHS是一个对X86硬件进行模拟的虚拟机, 使用它可以对操作系统进行模拟硬件调试。
从而可以加深理解炒作系统的设计和工作原理。

google之,发现都是介绍在ubuntu上面安装的方法。
由于手头没有 ubuntu的系统, 只有一个 CentOS6.0(32位)的版本,于是尝试:
yum list *bochs*, 失败,什么都没有。看来用yum是不能解决问题了。而且yum安装的方式不能启用 bochs的调试功能。那就源码安装吧。

bochs2.5的版本编译安装比较简单(只需要gtk2和libx11库即可),而低版本则安装比较麻烦。
===============================================================

1.bochs-2.5.1 源码编译安装。


#tar xzvf bochs-2.5.1.tar.gz#cd bochs-2.4.6#./configure --enable-debugger --enable-disasm --with-x11编译得到的Makefile中有点问题,缺少pthread库支持,手工加上:  #vi Makefile  然后在92行修改:  LIBS = -lm -lgtk-x11-2.0 - ... 前加上-lpthread, 如下:  LIBS = -lpthread -lm -lgtk-x11-2.0 - ...#make#sudo make install

成功!

2) 遇到的问题及解决:
  
  (i) X window library 未找到!
   #sudo yum install libX11-devel
  (2) gtk 2 未找到
   #sudo yum install gtk2-devel


==============================================================
2.bochs-2.3.7 源码编译安装

0) 编译之前先安装如下的库: gtk2,libXt,libXpm

  #sudo yum install gtk2 gtk2-devel  #sudo yum install libXt libXt-devel  #sudo yum install libXpm libXpm-devel

1)然后编译安装:

#tar xzvf bochs-2.3.7.tar.gz#cd bochs-2.3.7#./configure --enable-debugger --enable-disasm#make#sudo make install

其中报错误:"map"类型错误。解决的办法是修改: bx_debug/symbols.cc。
定位到 97行“using namespace std;” 下面,加入如下内容:

#ifdef __GNUC__ //修改
using namespace __gnu_cxx; //修改
#endif //修改



结果如下:

93 #elif BX_HAVE_SET_H 94 #include <set.h> 95 #endif 96  97 using namespace std; 98  99 #ifdef __GNUC__ //修改100 using namespace __gnu_cxx; //修改101 #endif //修改102 103 104 struct symbol_entry_t105 {106   symbol_entry_t (Bit32u _start = 0, char* _name = 0)107   {108     start = _start;109     name = _name;110   }111 112   char* name;113   Bit32u start;114 };

2) 重复1)的步骤,即可编译通过。运行,一切OK。
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表