有人能够在Snow Leopard下编译Bochs模拟器吗?豹对我来说工作得很好,但是在Snow Leopard的帮助下,我遇到了很多与Carbon库有关的问题...
好的,要求提供更多信息。
这里的错误...在为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/