2010-11-11 33 views
7

我意识到libobjc2的存在,并且我得知我需要使用clang而不是GCC,但是我找不到任何关于编译过程有什么不同的基本说明。如何在GNUstep中使用Obj-C 2.0?

谁能给明确的,一步一步的指示在获取,配置,编译,并在Ubuntu使用GNUstep的与的Objective-C 2.0?

+0

我还没有找到答案,但与此同时,我已经切换到Cocotron,并且Obj-C 2.0在那里工作得很好(与NSXMLDocument以及我在GNUstep中发现的其他一些事情一起)。当然,它需要从Mac进行交叉编译。( – andyvn22 2011-01-19 03:28:19

回答

-1

根据GNUstep Wiki,您只需要编译您的代码-fblocks-fobjc-nonfragile-abi。然后,您只需在代码中使用语言功能。

+3

)我认为这个过程比这更复杂Google建议GNUstep make和GNUstep base必须用libobjc2来重新编译 – andyvn22 2010-12-02 04:58:47

2

由于GNUStep ObjC2 FAQ已被引用,我假设你已经看过。然而,我想指出:

对于更高级的功能,目前仅当您使用Clang进行编译时才支持,您将需要GNUstep运行时。目前这还不算生产准备。它应该作为GCC运行时的直接替代品,但某些高级功能未经过充分测试。

The FAQ另外还提供了以下内容:

如果您使用的是最新的GCC版本来编译你的代码,那么你应该有Objective-C运行库的副本,以你的编译器来了。

如果使用-fobjc-nonfragile-abi标志进行编译,那么您将使用新的ABI。这只有GNUstep运行时才支持。这增加了:

  • 物业反省
  • 反思的任择议定书方法
  • 非脆弱的实例变量
  • 货运代理支持

所以,如果你正在寻找旧的通过GCC功能,this tutorial将很好地完成这项工作,this one.您已明确地呼吁您正在寻找使用Clang提供的功能(通过libobjc2)执行此操作,该功能拥有自己的文档。

Obtaining a release of Clang and getting set up似乎相当切割和干燥。 LLVM Getting Started文档非常强大(完整文档档案文件here),该文档应该能够深入了解如何正确设置后端并进行编译。对期望的构建过程的一些额外的了解可以参见here

但是,编写Clang中的Objective-C应用程序在编写本文时似乎极其缺乏记录和未经测试。随着功能变得可用并且代码库稳定下来,我想更多的用户文档将会生效。

+0

感谢您的回答我现在已经成功编译libobjc2(我必须编译clang源代码让libobjc2编译,奇怪),我甚至设法编译gnustep-base和libobjc2链接。不幸的是,NSObject的使用(这是非常罕见的;))会导致段错误。我认为也许GNUstep还没有准备好供普通人使用(尽管Etoilé项目的开发团队成功使用libobjc2; grr)。 – andyvn22 2010-12-09 15:06:59

相关问题