<真象还原> mac 搭建bochs 踩坑

环境

  1. mac macos catalina 10.15.7
  2. bochs-2.6

安装

  1. brew install gcc
  2. brew install sdl
  3. ./configure --enable-debugger --enable-disasm --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11 --prefix=$HOME/opt/bochs
  4. make && make install

报错1

出现了
cdrom_osx.cc:194:18: error: assigning to 'char ' from incompatible type 'const ch

解决

bochs-2.6/iodev/hdimage/cdrom_osx.cc,我们打开修改第 193 行

if ((devname = strrchr(devpath, '/')) != NULL) {
改为:
if ((devname = (char *) strrchr(devpath, '/')) != NULL) {
复制代码

继续 make && make install

报错2

gtk_enh_dbg_osdep.cc:19:10: fatal error: 'gtk/gtk.h' file not found
#include <gtk/gtk.h>
复制代码

解决
brew install gtk+

此时我们 需要重新 生成 makefile 文件

./configure  --enable-debugger            
            --enable-disasm              
            --enable-disasm             
            --enable-iodebug            
            --enable-x86-debugger             
            --with-x             
            --with-x11             
            --prefix=$HOME/opt/bochs`
复制代码

继续 make && make install

报错3

x.cc:42:10: fatal error: 'X11/extensions/Xrandr.h' file not found
#include <X11/extensions/Xrandr.h>
复制代码

安装 brew install libxrandr
继续make && make install

报错4

onfig.cc:3261:55: error: ordered comparison between pointer and zero
      ('char *' and 'int')
    if (SIM->get_param_string("model", base)->getptr()>0) {
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
复制代码

我们打开config.cc,找到3621行,修改为
修改config.cc的3621行

if (SIM->get_param_string("model", base)->getptr()>0) {
为
if (SIM->get_param_string("model", base)->getptr()>(char *)0) {
复制代码

继续make && make install 通过

配置文件

文件参考书中的文件 ,记得把最后一项注释掉就可以了

参考
How to install gtk on OSX for use with g++/gcc compiler

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享