Objective-C和MetroWerks C/C++ IDE

Nat*_*pos 2 ide macos cocoa objective-c metrowerks

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

Ste*_*non 5

简答:不.

Objective-C成为OS X的mac开发的通用语言,在计算机出货后10年左右进入测试阶段.OS X系统之前的大多数开发都是使用C或C++完成的.

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

最重要的是,Objective-C框架是为PowerPC(或现在的,Intel)macs构建的,而该机器中的处理器使用较旧的68k架构.


Jam*_*ams 5

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

1)你必须在68k上运行gcc(gcc是说Objective-C的编译器;你可以用llvm代替gcc,但是不要疯狂).这绝非易事.快速浏览最新的gcc版本并没有显示该平台的任何内容(不出所料).我不是gcc的专家,但我敢打赌它使用gcc特定的扩展和现代C,所以用现有的68k编译器编译它可能不是一个非首发.

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

从来没有搞过gcc,我怀疑这个任务需要大约两三年.也许更多.但是,这并非不可能.

2)一旦你有了一个可以在你的68k机器上运行的现代版gcc,你可以用它来交叉编译x86或PPC.(因为你在谈论AppKit,你将永远无法在旧计算机上运行任何这些程序.所有测试都必须在更现代的机器上进行.)你现在必须得到所有的库和来自目标机器(PPC或x86 Mac)的Cocoa/Foundation/AppKit/libc/etc的标题,并将它们放在68k上的gcc可以找到的位置.这可能需要6个月的时间才能完成.但同样,这不应该是不可能的.

但这可能不合法.据我所知,OS X(包含Cocoa)和Xcode的许可协议不允许您将这些二进制文件随意地移动到您想要的任何计算机上.在此之前,您可能希望与合格的律师交谈,因为没有人想要从国际刑警组织访问.

3)我认为你已经完成了这一点.您可以在Mac IIci上编写Objective-C/Cocoa代码,将其编译为PPC或x86 Mac,使用您喜欢的方法将其发送到OS X盒子(自2005年以来我只是一个Mac家伙所以我不喜欢甚至知道IIci上的连接选项,并且相当痛苦地测试和调试它.

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

不过,这可能是一个有趣的想法.如果你把它拉过来,它可能会让你登上reddit首页.(虽然,老实说,如果你想要的话,那么在YouTube上伪造它会更容易.)