首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Objective-C和MetroWerks C/C++集成开发环境

Objective-C和MetroWerks C/C++集成开发环境
EN

Stack Overflow用户
提问于 2009-10-28 06:59:21
回答 4查看 467关注 0票数 2

我正在学习Objective-C,我的朋友有一个真正的Macintosh,它使用的是MacSystem7(特别是带有68k处理器的7.5.5 ),我已经安装了Metrowerks C/C++ IIci (我认为它是版本1,但我不知道),但我没有测试它,那么我想知道一件事:使用NSObjects/Objects和AppKit或类似的东西在Objective-C中开发是可能的吗?谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-10-28 21:29:10

正如斯蒂芬所说,简短的答案是否定的。但是,只是为了好玩,我开始思考你必须做些什么才能真正做到这一点。

1)你必须让gcc在68k上运行(gcc是使用Objective-C语言的编译器;你可以用llvm代替gcc,但我们不要太着急)。这可不是一件容易的事。快速浏览一下最新的gcc版本,没有显示该平台的任何内容(这并不令人惊讶)。我不是gcc方面的专家,但我敢打赌,它使用的是特定于gcc的扩展和现代的C语言,所以让它在现有的68k编译器上编译可能不是一件容易的事情。

因此,第一步将是为gcc添加一个68k的后端。这将允许gcc吐出将在68k上运行的代码。然后,你可以使用支持68k的gcc的x86版本来交叉编译一个新的gcc二进制文件,它实际上将在你的旧Mac上运行。

我从来没有惹过gcc,我想这个任务大概需要两三年的时间。也许更多。但是,这仍然不是不可能的。

2)一旦你有了一个可以在你的68k机器上运行的现代版本的gcc,你可以用它来交叉编译x86或PPC。(由于您正在谈论AppKit,因此您永远无法在您的旧计算机上实际运行这些程序。所有测试都必须在更现代的机器上进行。)你现在必须从你的目标机器( PPC或x86 Mac)获取Cocoa/Foundation/AppKit/libc/etc的所有库和头文件,并将它们放在68k上的gcc可以找到的地方。这可能需要花6个月的时间才能弄清楚。但同样,这不应该是不可能的。

不过,这可能是非法的。据我所知,OS (包含Cocoa)和Xcode的许可协议不允许你随意地将这些二进制文件移动到任何你想要的机器上。在这样做之前,你会想要和一个称职的律师谈一谈,因为没有人想要国际警察组织的探访。

3)我想你在这一点上已经完成了。您可以在您的Mac IIci上编写Objective-C/Cocoa代码,将其编译为PPC或x86 Mac,然后使用您最喜欢的方法将其发送到OS机器(我从2005年才开始使用Mac,所以我甚至不知道IIci上的连接选项),然后对其进行相当痛苦的测试和调试。

此时,您可以访问在PPC或x86芯片上运行OS的Mac。你会想为什么你不在这台机器上做所有的开发。而且,由于您已经花费了几年时间来设置您的IIci开发环境,因此购买一个旧的PPC进行开发将是很便宜的。

尽管如此,这仍然是一个有趣的想法。如果你把它停下来,它可能会让你登上reddit的头版。(不过,老实说,如果这就是你想要的,那么直接为YouTube伪装会更容易一些。)

票数 5
EN

Stack Overflow用户

发布于 2009-10-28 07:06:05

简短的回答是:不。

Objective-C成为mac开发OS X的通用语言,OS在电脑出货后10年左右进入测试版。大多数pre- OS系统的开发都是用C或C++完成的。

如果没有OS,您将无法链接任何系统库或头文件,Metrowerks编译器也不会知道任何有关Objective-C语法或C的运行时扩展的信息。

最重要的是,Objective-C框架是为PowerPC (或现在的英特尔) macs构建的,而那台机器上的处理器使用的是较老的68k架构。

票数 5
EN

Stack Overflow用户

发布于 2013-03-23 18:58:46

在本世纪初,gcc还在为68k Amiga编译,所以可能有一些机会让它在68k Mac上工作。我相信至少在90年代初,对于gcc来说,C目标扩展是可用的。

另一种选择是使用68k Linux。有一个用于68k的Debian4.0 (etch)的移植,目前正在努力恢复它,所以你可能会运行一个相当新的版本的gcc。

还存在交叉编译的可能性。

同时代的C环境(不知道是否有支持目标C的环境)是思考C(后来的Symantec C++)和苹果的Macintosh程序员研讨会。从理论上讲,你可能会用其中的一个来编译一个支持objective C语言的gcc版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1634159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档