一直以来在linux用的bochs都是通过rpm包来安装的,最近需要用到bochs的调试功能,但是通过rpm包安装的bochs不含调试功能,需要通过源码编译的形式来重新安装bochs.
是时候生一下级,干脆就用最新版的bochs吧,版本号为2.6.2,全名是bochs-2.6.2.tar.gz.剩下步骤网上就比较多了,问题是我按照的时候按照网上大神的步骤做,不顺利,出现了编
译错误,先不说这么多,先说我的步骤,
1. 先是要配置,输入的选项是:
./configure --enable -debugger --enable-disasm
等待完成, 这一步我没有出现问题.
2.make
这一步我出现了问题.错误提示的最后部分是:
/usr/lib/gcc/i586-suse-linux/4.7/../../../../i586-suse-linux/bin/ld: note: 'pthread_create@@GLIBC_2.1' is defined in DSO /lib/libpthread.so.0 so try adding
it to the linker command line
/lib/libpthread.so.0: could not read symbols: Invalid operation
collect2: error: ld returned 1 exit status
make: *** [bochs] Error 1
感觉是在链接的时候,没有线程库造成的.我是这样解决的,需要修改Makefile, 在Makefile的96行
96 X_LIBS = -lX11 -lXpm -lXrandr
之后加上 -lpthread
之后保存退出,再次make
一切正常!
3,安装, make install
默认的安装目录是 /usr/local/bin
安装完之后,我又有了一个新的问题,原来一些不需要调试的程序,不能一下子运行,我看了很长时间的帮助,也没有找到如何解决.干脆再将bochs的rpm包再安装一次,来运行
不用调试调试的程序.由于不同版本的bochs的配置文件不同,所以我选择了与源码安装一样的rpm版本号,完整的名字是:bochs-2.6.2-1.i586.rpm.
采用rpm -i bochs-2.6.2-1.rpm 命令
同样不是很顺利, 错误提示是:
error: Failed dependencies:
libwx_base-2.8.so.0 is needed by bochs-2.6.2-1.i586
libwx_base-2.8.so.0(WX_2.8) is needed by bochs-2.6.2-1.i586
libwx_gtk2_core-2.8.so.0 is needed by bochs-2.6.2-1.i586
libwx_gtk2_core-2.8.so.0(WX_2.8) is needed by bochs-2.6.2-1.i586
看着像是库依赖问题,先安装上再说,
zypper install libwx_base-2.8.so.0
一通下载,安装 再安装另外一个库
zypper install libwx_gtk2_core-2.8.so.0
安装完之后,再次用 rpm -i bochs-2.6.2-1.i586.rpm
这次很顺利. 安装成功.
为了方便使用,我将/usr/local/bin 目录下的bochs 的名字变更成bochsdbg.
阅读(3723) | 评论(0) | 转发(0) |