分类: LINUX
2009-02-16 17:31:36
决定做一做mit lab里的有关操作系统方面的东东 (2008也有了),做这个的一个必备工具就是bochs,编译时给加上调试参数,可以调试操作系统运行情况(就跟用gdb调试c程序类似,挺有意思)。
安装bochs(步骤可以参照tools.html)
1) 下载
$ wget
$ tar xzf bochs-2.2.6-6.828r2
$ cd bochs-2.2.6-6.828r2
2) 编译安装
$ ./configure --prefix=path_to_install \
--enable-disasm \
--enable-smp \
--enable-debugger \
--enable-new-pit \
--enable-all-optimizations \
--enable-4meg-pages \
--enable-global-pages \
--enable-pae \
--disable-reset-on-triple-fault \
--with-all-libs \
--with-x \
--with-x11 \
--with-nogui
$ make && make install
如果不出意外的话(提示error),编译安装就ok了;但是对于我来说总是好事多磨,出了好几个错误,搞了好长时间才搞定。
第一个编译错误: 有关hash_map的,修改bx_debug/symbols.cc,在using namespace std;语句后面添加 using namespace __gnu_cxx;
第二个编译错误: 有关gdk/gdkkeysyms.h头文件的(说找不到该头文件),查看了configure文件,发现他把目录指向了/opt/gnome/include/...下面,而我的系统头文件在/usr/include/...下面,所以修改configure文件把所有/opt/gnome修改为/usr,使用vi打开执行命令":1,$s#/opt/gnome#/usr#g" 即可
第三个编译错误:有关wxWidgets的,总是提示说“duplicate case value”和"previously used here"之类的错误;查来查去在/usr/include/wx-2.6/wx/defs.h文件里发现一句话,说这个东东设计上就跟unicode不兼容等等之类,我想可能时我的wxWidgets有点问题,那我就重新编译一个来试试;
$ wget
$ tar xjf wxWidgets-2.8.9.tar.bz2
$ cd wxWidgets-2.8.9
$ ./configure --prefix=path_to_install_wxWidgets --enable-unicode --enable-monolithic
说实在的,上面的参数是我瞎拼凑的(./configure --help里找的),居然后来好用,呵呵;
然后设置一个环境变量
$ export WX_CONFIG=path_to_install_wxWidgets
然后再进入bochs-2.2.6-6.828r2目录重新configure,make,应该就ok
至于为什么ok我也不清楚,瞎猫碰到死耗子吧
一个编译好的bochs(debian lenny, gcc 3.4, binutils 2.18, bochs 2.26)