16

这是可能的吗,因为Apple已经开源了代码(libdispatch?)我对如何使用它感到有点困惑。这就像一个任何应用程序都可以使用的带有 API 的库,还是 Mac OS X 中内置的 OS 功能?可以单独为 Mac 和 iPhone(使用 iOS 4)构建的应用程序使用这个库吗?

我认为必须运行一个端口才能gcc与 Apple 引入的新语义兼容。

4

2 回答 2

14

差不多一年后,但我在 Ubuntu Natty 上使用它非常愉快。Oneiric 将提供适当的软件包。

于 2011-07-31T10:06:41.397 回答
9

阅读Ars Technica 概述后,似乎存在一些挑战

  • GCD 广泛使用块(Apple 对 C 的一种近似闭包的扩展),这意味着您的编译器需要支持块。gcc 的标准版本不支持块,因此您必须将 Apple 的更改移植到 Linux gcc 或使用 clang/llvm。
  • Mac OS X 版本的 GCD 涉及内核中的一些代码。显然,如果 Linux 需要更改内核以支持 GCD,这是一项主要工作。但是,似乎只有用户空间的端口是可能的。
  • GCD 根据 Apache 许可证获得许可。显然,此许可证与 GPL v2 不兼容。因此,您不能在任何以 GPL v2 分发的应用程序中使用 GCD。不过 GPL v3 是可以的,因此在 GPL v2“或更高版本”下获得许可的应用程序是可以的。

说了这么多,FreeBSD移植已经完成了,所以一定是可以的。

于 2010-07-02T12:59:58.257 回答