歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> CentOS 6.0 源碼 編譯 安裝 Bochs

CentOS 6.0 源碼 編譯 安裝 Bochs

日期:2017/2/28 14:54:34   编辑:Linux教程

BOCHS是一個對X86硬件進行模擬的虛擬機, 使用它可以對操作系統進行模擬硬件調試。 從而可以加深理解炒作系統的設計和工作原理。

Google之,發現都是介紹在Ubuntu上面安裝的方法。 由於手頭沒有 Ubuntu的系統, 只有一個 CentOS 6.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_t
105 {
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。

Copyright © Linux教程網 All Rights Reserved