综述:
其实通过apt-get install bochs已经安装了bochs,但是不能调试,当内核出问题了之后仍然不行 ,windows版的可以直接下载在安装目录下面叫bochsdbg,而linux下面得重新编译根据编译选项设置,所以我就决定编译一个版本出来,先下载吧,地址在
-
http://jaist.dl.sourceforge.net/project/bochs/bochs/2.6.1
因为我是ubuntu的版本所以下载了tar.gz的。然后需要解压出来
-
tar -zxvf bochs-2.6.1.tar.gz
解压出来之后就会生成bochs-2.6.1的文件夹,我们就可一编译啦。首先需要cofigure一下
-
./configure --with-all-libs --enable-debugger
大家可以看一下configure文件夹,里面有bochs的各种配置,可以自己设置自己需要的。
然后我们就可一make了。等等貌似我们还需要一些bochs需要的库,因为bochs有自己的界面用gtk做的,我们提前需要安装gtk的包我也是瞎装了一腾。
-
sudo apt-get install libgtk2.0-0
-
sudo apt-get install libgtk2.0-dev
然后就可以make啦。先make一下看看,报了 一个gtk/gtk.h没找到,是在gui下面的,我就去gui下面看了一下makefile的内容,我就在改makefile,gtk因为变成了2.0
一个可以加上
-
CXXFLAGS = $(BX_INCDIRS) -g -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -pthre ad $(X_CFLAGS) `pkg-config --cflags --libs gtk+-2.0`
让pkg-config自己负责(可能需要安装pkg-config),我是自己搜索的然后加在上面了用
-
find /usr -name "filename"
缺失了那个就吧相应的目录文件加到LOCAL_CXXFLAGS的变量里面。真伤感各种缺失文件。弄了我半天。
gui/makefile
-
CXXFLAGS = $(BX_INCDIRS) -g -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -pthread $(X_CFLAGS) -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
-
LOCAL_CXXFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12
终于成功了,然后我继续make,貌似还不行,又说各种udefined函数,这个是在链接的时候报出来的,所以应该是没有相应的库文件,貌似优势gtk的各种函数没有链接上去,这次的更新是在bochs-2.6.1目录下面的makefile,查看makefile加上了一句,在链接的地方
-
$(LIBTOOL) --mode=link --tag CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) -export-dynamic $(BX_OBJS) $(SIMX86_OBJS) \
iodev/libiodev.a iodev/display/libdisplay.a iodev/hdimage/libhdimage.a \
$(DEBUGGER_LIB) cpu/libcpu.a cpu/cpudb/libcpudb.a \
memory/libmemory.a gui/libgui.a \
$(DISASM_LIB) \
$(FPU_LIB) \
$(GUI_LINK_OPTS) \
$(MCH_LINK_FLAGS) \
$(SIMX86_LINK_FLAGS) \
$(READLINE_LIB) \
$(EXTRA_LINK_OPTS) \
$(LIBS)\
-
`pkg-config --cflags --libs gtk+-2.0`
这一次make成功啦。
然后
不要忘记sudo。
附带我的bochs.bxrc
-
#display_library: sdl
-
megs: 16
-
mouse: enabled=0
-
floppya: 1_44=/home/anqiu/git_code/bin/disk.img, status=inserted
-
#load32bitOSImage: os=nullkernel, path=./disk.img
-
boot: floppy
完美成功。
最后:
linux的代码编辑啥的,太复杂了。不过还是挺有收获的。
阅读(2037) | 评论(0) | 转发(0) |