2010-11-11 37 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

相關問題