一个从脚本语言(如Lua、Ruby等)到Cocoa的桥需要在MacOS上编译部分才能工作吗?

我对通过脚本语言(如Ruby,Lua或者C)来绑定Cocoa框架的工作很感兴趣。我研究了各种绑定方法,了解了这些语言如何与Cocoa API函数绑定,但我不知道这实际上在Mac上会如何工作。是否需要在Mac上进行额外的编译,或者只需要与API本身进行绑定就足以生成可工作的可执行文件?

点赞
用户3125367
用户3125367

将下面翻译成中文并且保留原本的 markdown 格式

Cocoa API 是基于 Objective-C Runtime 的。Objective-C 是 C 的超集,因此它的代码可能有两个接口:基于 C 的和基于 Objective-C 的。前者很常见,后者则是基于 C 实现的。Objc Runtime 中有大量的 C 函数,如 objc_getClass() 和 objc_msgSend()。所有的 objc 代码都会转换为这些函数的调用,然后编译为常规的 C。因此,绑定到 objc 就是绑定到这些函数。

这个问题不太清楚,可能是因为缺乏对上述内容的理解。Objc Runtime 是一个常规库,因此任何“Cocoa 绑定/桥接”都不比任何“zlib 绑定”等更加复杂。一旦您编译了通用桥接,它就可以在相应的语言中使用,而不需要更改或额外的链接。

2015-06-05 12:05:16