有人能够在Snow Leopard下编译Bochs模拟器吗?豹对我来说工作得很好,但是在Snow Leopard的帮助下,我遇到了很多与Carbon库有关的问题...

好的,要求提供更多信息。

  • 我在shell上使用make进行编译;带有bochs来源
  • 的stanard构建过程
  • 我可以针对10.5 SDK进行成功编译。 Unfortunatley,它没有在Snow Leopard下运行...总是崩溃
  • 然后我从SnowLeopard CD安装了最新的XCode并针对10.6 SDK进行了编译;不用更改isysroot标志即可指向10.6而不是10.5,现在,编译器在查找某些carbon header 时遇到了问题...(-framework Carbon作为g++的参数包含在内)

  • 这里的错误...在为bochs编译基于碳的gui时失败:
    g++ -c  -I.. -I./.. -I../iodev -I./../iodev -I../instrument/stubs -I./../instrument/stubs -pipe -O3 -isysroot /Developer/SDKs/MacOSX10.6.sdk -framework Carbon -fomit-frame-pointer -finline-functions -falign-loops=16 -falign-jumps=16 -falign-functions=16 -falign-labels=16 -falign-loops-max-skip=15 -falign-jumps-max-skip=15 -fprefetch-loop-arrays  -fpascal-strings -fno-common -Wno-four-char-constants -Wno-unknown-pragmas -Dmacintosh -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES    carbon.cc -o carbon.o
    carbon.cc:154: warning: non-local variable ‘<anonymous enum> last_screen_state’ uses anonymous type
    carbon.cc:154: warning: non-local variable ‘<anonymous enum> screen_state’ uses anonymous type
    carbon.cc:163: error: ‘CIconHandle’ does not name a type
    carbon.cc: In function ‘OSStatus CEvtHandleWindowBackdropUpdate(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*)’:
    carbon.cc:278: error: ‘GetWindowPortBounds’ was not declared in this scope
    carbon.cc:279: error: ‘BackColor’ was not declared in this scope
    carbon.cc:280: error: ‘EraseRect’ was not declared in this scope
    

    ...还有更多未申报的xxx错误

    提前致谢
    苹果电脑

    最佳答案

    我终于能够自己完成这项工作,但是比我预期的花费了更多的工作。即使在Linux上,Bochs的安装也会有些气质。

    笔记

    不用尝试使用Carbon进行编译。 Apple已弃用它,您将无法使用它编译64位应用程序(Mac OS X的默认设置)。 http://appleinsider.com/articles/12/02/18/mountain_lion_focuses_on_cocoa_drops_x11_and_deprecates_carbon

    顺便说一句,Bochs团队未使用Mac OS X,并且可能不会解决此问题。这可能是您帮助开源项目的机会:http://sourceforge.net/p/bochs/bugs/1204/

    也就是说,您只需稍作调整就可以编译SDL支持。

    安装SDL 1.2库

    我永远无法从http://www.libsdl.org获得SDL库以使其正常工作,因此我使用Homebrew-http://brew.sh进行安装:

    brew install sdl
    

    配置Bochs

    我喜欢使用调试器配置Bochs(用于OS开发),并且喜欢将其安装到主目录中(以防我想删除它)。这是我使用的配置命令:
    ./configure --enable-ne2000 \
                --enable-all-optimizations \
                --enable-cpu-level=6 \
                --enable-x86-64 \
                --enable-vmx=2 \
                --enable-pci \
                --enable-usb \
                --enable-usb-ohci \
                --enable-e1000 \
                --enable-debugger \
                --enable-disasm \
                --disable-debugger-gui \
                --with-sdl \
                --prefix=$HOME/opt/bochs
    

    请注意,我添加了 --disable-debugger-gui ,因为如果您选择启用调试器,则默认情况下启用它。但是,由于调试器GUI依赖于GTK +,并且在Mac OS X上默认未安装,因此您要禁用它(GTK +是您不想处理的另一种蠕虫病毒)。

    build 和安装Bochs

    接下来,构建并安装
    make
    make install
    

    最后,只需设置您的BXSHARE环境变量并更新路径:
    export BXSHARE="$HOME/opt/bochs/share/bochs"
    export PATH="$PATH:$HOME/opt/bochs/bin"
    

    关于macos - 在Mac OS X Snow Leopard上编译Bochs,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1677324/

    10-11 21:46