Использование Grand Central Discatch в Linux
-
01-10-2019 - |
Вопрос
Это возможно, так как Apple открывает поставленный код (libdispatch
?) Я немного запутался, как можно использовать это. Это похоже на библиотеку с API, что любое приложение может использовать, или функция OS, встроенная в Mac OS X? Может ли приложение, построенное «для» MAC и iPhone (с iOS 4), используя эту библиотеку?
Я предполагаю, что нужно запустить порт, чтобы сделать gcc
Также совместим с новым семантическим, что Apple представила.
Решение
Прочитав ARS Technica Обзор, Похоже, появляется несколько вызовов
- GCD делает широкое использование блоков (расширение Apple к C, который приближается к закрытиям), что означает, что ваш компилятор должен поддерживать блоки. Стандартная версия GCC не имеет поддержки блоков, поэтому вам придется либо портировать изменения Apple в Linux GCC или использовать Clang / LLVM.
- Mac OS X версии GCD включает в себя какой-то код в ядре. Очевидно, что для Linux требуется изменения ядра для поддержки GCD, это главная работа. Однако кажется, что возможен только порт пользователя только порта.
- GCD лицензирован по лицензии Apache. По-видимому, эта лицензия не совместима с GPL V2. Таким образом, вы не можете использовать GCD в любом приложении, распределенном под GPL V2. Хотя GPL V3 в порядке, поэтому приложение, лицензированное под GPL V2 "или позже", в порядке.
Сказал все это, FreeBSD Port. было сделано, поэтому должно быть возможно.
Другие советы
Это почти год спустя, но я используя его довольно счастливо на Ubuntu Natty. Правильные пакеты идут в oneiric.
Не связан с StackOverflow