【发布时间】:2014-05-13 11:43:34
【问题描述】:
我正在尝试在 Mac OS X Maverick 上使用 C++ 中的 Carbon 框架创建一个窗口。我需要它来设置 AGL 窗口 OpenGL 上下文。但我发现大多数相关的 Carbon 方法仅在 x86 模式下链接。例如在“CreateNewWindow”方法的标题中明确说明:
可用性:* Mac OS X:在 10.0 版及更高版本中 Carbon.framework [仅限 32 位]
所以我只能在 32 位模式下成功编译它,这对我来说是无用的,因为我的目标是 64 位操作系统。64 位的解决方法是什么?我也对使用 Cocoa + ObjectiveC 的方式不感兴趣。
【问题讨论】:
-
32 位应用程序在 64 位 OS X 上运行良好。唯一的问题是如果您的应用程序需要大量内存 (> 2 GB)。
-
我的错误解释 - 我的目标应用程序是 64 位,它不运行发布为 32 位的插件。
-
好的 - 是时候放弃 Carbon 了 - Apple 已经警告开发者这件事大约 10 年了。
-
@PaulR 我从几个月前开始就是 Apple 开发人员 ;) 那么我该如何解决这个问题?使用 Cocoa?是否有用于创建窗口的 C/C++ API?我只看到 Obj-C到处都是例子。
-
是的,Carbon 已经被弃用了很长时间,这就是为什么它从未完全过渡到 64 位的原因。不过,请使用
lipo检查您的应用程序的架构 - 它可能是一个具有 32 位和 64 位可执行文件的“胖”应用程序,在这种情况下,您可以强制它作为 32 位应用程序启动。但从长远来看,您可能应该忘记 Carbon。