2010-06-30 71 views
12

這是可能的,因爲蘋果公開源代碼(libdispatch?)我有點困惑,可以如何使用這個。這就像一個帶有API的庫,任何應用程序都可以使用,或者Mac OS X內置的操作系統功能?可以單獨建立「for」Mac和iPhone(使用iOS 4)的應用程序使用此庫嗎?在Linux中使用宏中央調度

我假設你必須運行一個端口,以使gcc也與Apple引入的新語義兼容。

回答

8

讀了Ars Technica overview,似乎有一些挑戰

  • GCD廣泛使用的塊(蘋果擴展到C近似於閉包),這意味着你的編譯器需要支持塊。 gcc的標準版本不支持塊,因此您必須將Apple的更改移植到Linux gcc或使用clang/llvm。
  • GCD的Mac OS X版本涉及內核中的一些代碼。顯然,如果Linux需要更改內核以支持GCD,那麼這是一項主要工作。但是,似乎只有用戶空間端口是可能的。
  • GCD根據Apache許可證進行許可。顯然,這個許可與GPL v2不兼容。所以你不能在GPL v2下分發的任何應用程序中使用GCD。 GPL v3是確定的,因此,在GPL v2「或更高版本」下獲得許可的應用程序是可以的。

話雖如此,FreeBSD port已完成,所以它一定是可能的。

+5

反正我會切換到Clang。這是錯誤更方便。 :) – 2011-01-04 14:35:20

+0

@時間機器:我同意。我已經轉移到叮噹爲我的Xcode項目。據稱,它編譯速度更快,併產生更好的優化代碼,雖然我從來沒有見過基準證明它。 – JeremyP 2011-01-04 14:47:02

14

它差不多一年後,但我在在Ubuntu NATTY。合適的包裝正在進入Oneiric。

+0

謝謝你的跟進,克里斯。 – prabhu 2011-07-31 12:41:59

+0

不可用:(你可以更新鏈接嗎? – bacchus 2013-08-19 13:03:23

+0

@bacchus由於Twitter破壞了Posterous(和我的博客!)我沒有時間將它恢復到某個地方,謝謝提醒我!我會讓你知道它何時回到網上 – 2013-08-19 13:34:17