在 Mac os x Snow Leopard 上编译 Bochs

2024-03-29

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

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

  • 我在 shell 上使用 make 进行编译; bochs 源代码附带的标准构建流程
  • 我成功地针对 10.5 SDK 进行了编译。不幸的是,它没有在 Snow Leopard 下运行......总是崩溃
  • 然后我从 SnowLeopard CD 安装了最新的 XCode 并针对 10.6 SDK 进行编译;除了将 isysroot 标志指向 10.6 而不是 10.5 之外,无需更改任何内容,现在编译器在查找一些碳标头时遇到问题...(-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 错误

提前致谢 苹果


我终于能够自己完成这个任务,但是比我预想的要多花一些功夫。 Bochs 的安装可能有点不稳定,即使在 Linux 上也是如此。

Note

忘记尝试使用 Carbon 进行编译吧。 Apple 正在弃用它,您将无法使用它编译 64 位应用程序(Mac OS X 的默认设置)。http://appleinsider.com/articles/12/02/18/mountain_lion_focuses_on_cocoa_drops_x11_and_deprecates_carbon 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/ http://sourceforge.net/p/bochs/bugs/1204/

也就是说,您应该能够通过一些调整来使用 SDL 支持进行编译。

安装 SDL 1.2 库

我永远无法从中获得 SDL 库http://www.libsdl.org http://www.libsdl.org为了正常工作,所以我使用了 Homebrew --http://brew.sh http://brew.sh-- 安装它:

brew install sdl

配置博赫斯

我喜欢使用调试器配置 Bochs(用于操作系统开发),并且喜欢将其安装到我的主目录中(以防我想删除它)。这是我使用的配置命令:

./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

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

构建和安装 Bochs

接下来,构建并安装

make
make install

最后,只需设置 BXSHARE 环境变量并更新路径:

export BXSHARE="$HOME/opt/bochs/share/bochs"
export PATH="$PATH:$HOME/opt/bochs/bin"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Mac os x Snow Leopard 上编译 Bochs 的相关文章

  • Gcc 4.2 版本缺失

    在我的带有 osx lion 和 XCode 4 1 的新 macbook pro 上 我遇到了一些 gcc 问题 In usr bin我找不到gcc 4 2 我只有以下版本 i686 apple darwin11 llvm gcc 4 2
  • libSDL、CMake 和 Mac OS X Lion

    我正在尝试在我的Mac上编译cmake项目 但它取决于SDL框架 我安装了这个框架 在 cmake 之后向我报告找不到 libSDL 我自己设置了以下导出变量 按照 cmake 的建议 export SDL INCLUDE DIR Libr
  • Mysql 连接到服务器:用户 root@localhost 的访问被拒绝

    edit9 是否有可能我只是缺少文件夹的一些权限 我真的非常非常感谢更多的建议 edit3 由于这篇文章没有得到足够的回复 而且这绝对是至关重要的 我尽快完成这件事 我重建了我的帖子以显示我认为到目前为止我已经扣除的内容 注意 通过许多不同
  • macOS 更新后 Jenkins 用户消失

    我在 Mac 上运行 Jenkins 作为 CI 服务器 使用用户 jenkins 的典型设置 它在 macOS 10 12 上运行良好 今天我将 macOS 升级到 10 13 High Sierra 升级过程完成后 Jenkins 无法
  • 允许在 Safari 上聊天应用程序使用 audio.play()

    由于苹果禁用了自动播放音频的功能HTMLMedia Element play https developer mozilla org en US docs Web API HTMLMediaElement play在没有用户交互的 java
  • NSMenuItem with attributeTitle 包含 NSFont 对象,绘制带有基线偏移的标题

    我正在尝试使用系统中可用的字体列表创建一个 NSPopUpButton 看起来很明显的任务 但我失败了 我想 我错过了一些如此明显的事情 以至于我完全忘记了它 代码非常简单 let button NSPopUpButton button m
  • AspNet vNext 上的 Kestrel 不提供 / 下的索引页面

    我需要能够在默认网址下提供我的 index html 使用 Kestrel Web 服务器 现在我只能使用完整路径访问我的静态文件 即 index html 同样 这在 VisualStudio 上完美运行 上下文是带有 Kestrel 的
  • 尝试使用 Rails 和 PostgreSQL 生成模型时,命令挂起且没有错误

    使用该命令时 rails generate model Event name string 什么也没发生 我必须按 CTRL c 我使用的版本是 红宝石 2 1 1p76 导轨4 1 0 PostgreSQL 9 3 4 Mac OS X
  • 为程序员设置 Mac [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何获取 iTunes 选择的文件路径

    我正在尝试使用 AppleScript 确定在 iTunes 中选择的曲目的路径 貌似不是该公司的财产track班级 谁能告诉我如何获取文件路径 尝试这个 gets file path of selected song tell appli
  • 如何从 MacOS X Dock 启动脚本?

    我知道我可以将应用程序固定到扩展坞并从那里启动它们 但是 有没有办法将不是 MacOS 意义上的 应用程序 的程序 例如 bash 脚本 固定到扩展坞上 您可以将任何文件拖到 Dock 的右侧栏 垃圾箱和文件夹所在的位置 然后单击它来执行它
  • 如何在 Mac OS X 10.8 上安装 hg Convert 所需的 python subversion 绑定?

    我正在寻找一种解决方案 最好是干净且简单的 以启用hg convert使用 SVN 存储库在 OS X 10 8 上工作 目前 如果您尝试转换 SVN 存储库 您将得到一个could not load Subversion python b
  • SwiftUI 更新主菜单 [已解决] kludgey

    真正的问题 你如何更新mainMenu在 SwiftUI 中 它真的可以工作吗 我在 SwiftUI 中构建了一个基于 MacOS 文档的应用程序 其中包括所有内置的文件菜单命令 即关闭 保存 复制 重命名 等 在保存文档之前 我会验证结构
  • 在 64 位 OS X 10.6 上制作胖二进制文件更喜欢 32 位的正确方法?

    假设我问用户 你想在 32 位模式还是 64 位模式下运行 他们选择 32 位 我如何向操作系统注册这一事实 我看过arch http developer apple com mac library documentation Darwin
  • 适用于 C/C++ 和 Java 的 Eclipse IDE

    我正在尝试在运行 El Capitan 的 Mac 上设置 Java IDE 但是我找到的安装程序要求我为 C C 和 Java 安装单独的 IDE Eclipse Neon Eclipse 有什么选项可以让我拥有一个支持多种语言的 IDE
  • 将 Armadillo C++ 库导入 Xcode

    我是 Mac 用户 正在尝试安装和导入 C Armadillo 库 以下是我到目前为止所采取的步骤 1 我从其网站下载了犰狳库 2 我仔细阅读了下载文件中的 Readme txt 文件 解释了如何安装它 3 我使用CMake将犰狳下载文件制
  • 如何从 os x 终端启动屏幕保护程序(并锁定屏幕)?

    有没有办法从 bash 脚本启动屏幕保护程序 并锁定屏幕 你试过这个吗 System Library Frameworks ScreenSaver framework Resources ScreenSaverEngine app Cont
  • 在 Mac OSX 上从 Python 3.6 运行 wine 命令

    我正在尝试用 Python 编写一个打开的脚本wine然后发送代码到wine终端打开一个 exe程序 这 exe程序也是命令驱动的 我可以打开wine 但我无法进一步 import shlex subprocess line usr bin
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • 如何使用 Bochs 运行汇编代码?

    我想使用 Bochs 作为 8086 模拟器 是否有捷径可寻 我想要的是类似 emu8086 的东西 http www emu8086 com http www emu8086 com 如果程序的初始部分适合 512 字节 并且您不介意将自

随机推荐

  • getline 如何像使用 fgets 一样限制输入量

    GNU手册 https www gnu org software libc manual html node Line Input html 这段话来自 GNU 手册 警告 如果输入数据有空字符 您将无法辨别 所以 除非您知道数据不能包含空
  • 有什么理由仍然对数据库表和列使用蛇形命名法?

    当我开始数据库设计时 出于某种原因 建议您始终对表和列使用蛇形命名法 my table name 我认为在 MySQL 中尤其如此 原因是在某些情况下会丢失或强制使用大写 快进到今天 我看到很多人使用 Pascal Case MyTable
  • Windows 或 Linux 上的 Objective C

    我想学习 Objective C 但没有 Mac 如何在 Windows 或 Linux 上编译 obj c 我更喜欢 Windows 但 Linux 也可以 GCC 有一个 Objective C 编译器 您可能还想调查GNUStep h
  • 在 Maven/Java 项目中创建资源

    如何创建资源 使其位于我的项目的资源文件夹中 下面 test txt 是我要创建的文件 但变量 url为空 因此我无法获取要创建的文件的路径 URL url HashArray class getResource test txt File
  • 如何在C++中提取数字的数字?

    基本上我想做一个小程序 当你输入一个数字 比如145 时 它会读取3位数字并打印最大的一位 int a b c 最大值 cout lt lt Enter a b and c cin gt gt a gt gt b gt gt c max a
  • 如何使 python 进程以正确的进程名称运行?

    我在 Python 中有一些长期进程和临时进程 虽然 shell 和 C 程序以自己的名称运行 但所有 Python 进程都以 python filename py 运行 这使得识别进程变得困难 如何使 python 进程在 Linux 中
  • Angular:将curl 转换为Angular $http POST 请求

    我有这条卷曲线 curl X POST H content type application json H AUTH TOKEN vLC4grMuKbtbamJL3L6x localhost 8080 v1 segments appkey
  • 使用 NHibernate 查询

    我是 NHibernate 的新手 我正在尝试学习如何查询我的数据 下面是配置 xml 仅显示食谱 我希望能够通过输入的关键字按菜谱标题查询菜谱 还有成分名称中的成分 例如 您可以输入 意大利面酒 这是我尝试过的 但给了我一个错误 hql
  • 如何使用 c 中最少的库跟踪鼠标输入

    我不知道在哪里可以找到这些信息 但我想知道如何使用 c 中最少的非标准库来获取鼠标输入 或任何隐藏输入 基本上 c 中是否有相当于鼠标 和其他输入 输入的 stdio 或者是否有一个最小且在多个平台上交叉兼容的库 只需能够将鼠标坐标打印到终
  • 将对象添加到 NSMutableArray 属性

    这是我的数据结构 group 1 n id name elements 1 n 我为具有所有属性的元素定义一个类 为组定义一个类 如下所示 interface Group NSObject NSInteger groupID NSStrin
  • 如何通过模拟选择器和/或 redux 存储来编写 Redux Saga 测试

    Context 我是编写 Redux Saga 测试的新手 并且一直在使用反应样板 https github com react boilerplate开发一个应用程序 该应用程序使用 Jest 进行测试 样板文件非常模块化且复杂 我什至不
  • 如何学习编写惯用的 C++ 代码 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我最近强迫自己学习 C 并且刚刚读完 Herbert Schildt 所著的 C 完整参考 一书 我喜
  • 在 Rails 中创建博客档案

    控制器 class PostsController lt ApplicationController def index posts Post published respond to do format format html index
  • 您所知道的最难理解的 C++ 代码是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • C++ 标准库函数的函数重载

    我有一个免费的功能作为课程的一部分 在类的构造函数中我正在做一些malloc运营 所以在destructor我正在尝试释放那段记忆 但是 VS10 编译器抱怨说 free pointer 与我的类的自由函数的签名不匹配 所以问题是在一个类中
  • Asp.net 中的异步 Web 服务

    如何在 ASP NET 中设置异步 Web 服务 我想调用网络服务将一些数据发布到数据库 但我不关心响应是失败还是成功 我只能使用 net 2 0或3 5 它可以是vb或c 当您在 Visual Studio 中创建服务引用时 单击 高级
  • 哪些类型可以声明为 const?

    在 C 中 哪些类型可以声明为const const int i 0 const double d 0 const decimal m 0 const referenceType null 有完整的清单可供我参考吗 Well MSDN ht
  • 子目录中的 Ember 组件

    我读到现在支持在 components 中包含目录 文件夹 使用 ember cli 我可以生成所需的必要子目录 组件 但是 我似乎无法引用该组件 例如 如果我有这样的文件夹结构 app components sub test comp j
  • 访问 Angular ui-calendar 中的 fullcalendar 对象

    我正在尝试访问 ui calendar 中的 fullcalendar 对象 文档说我需要做的就是给日历属性一个名称 div 然后 您应该能够像这样访问日历 uiCalendarConfig calendars myCalendar 这对我
  • 在 Mac os x Snow Leopard 上编译 Bochs

    有人能够在 Snow Leopard 下编译 Bochs 模拟器吗 Leopard 对我来说工作得很好 但在 Snow Leopard 下我遇到了很多与 Carbon 库相关的问题 好的 我们要求提供更多信息 我在 shell 上使用 ma