编译用于Linux的Objective-C应用程序(API覆盖)

时间:2012-03-12 09:52:28

标签: objective-c linux macos cocoa gnustep

我可能会在这里问一些奇怪的事情,但我不确定从哪里开始。问题是我正在考虑使用Obj-C和Foundation类在Mac上编写命令行工具。

但是我希望能够为不同的Linux发行版编译它以便将来作为服务器应用程序运行,这是一个非常大的风险。

我知道编译Objective-C for Linux本身并不是问题,但我不明白的是API覆盖范围。

据我所知,到目前为止,我可以使用GNUStep来编译linux,但是我有一个很好的方法来概述API的覆盖范围吗?我的意思是,如果我使用已经添加到OSX中的Foundation框架的类Lion,那么当时GNUStep中没有可用的风险有多大?

我希望我提出一个你们可以理解的问题,基本上我想避免编写一个理论上可以编译为linux的应用程序,但由于缺少类等而不能在实践中使用。

谢谢!

2 个答案:

答案 0 :(得分:1)

意见:风险相当高。 GNU Step是一个开源项目,依赖于其志愿者来保持最新状态。 OS X Lion对Foundation和AppKit的添加量很少。

如果您希望将来用于* nix,那么最佳选择是将其写入通用C / C ++中,然后如果您需要GUI,请将其精简地包装在NSTask中。

答案 1 :(得分:1)

您应该可以通过咨询GNUStep base API docs来检查您使用的API是否可用。

如果兼容性是一个大问题,您可能希望将GNUStep作为基础。与以相反方式移动代码相比,编译mac应该相当简单。当然,你总是可以选择帮助补充GNUStep中缺少的东西。