Objective-C в Linux

Возможный дубликат:
Программирование игр на Objective-C и linux

Я знаю, что разработка iPhone приложений (безболезненно, по крайней мере) в значительной степени требует Mac. Однако можно ли создавать обычные настольные приложения с помощью Objective-C в Linux? Например, можно ли создать игру с использованием библиотеки разработки для Objective-C и выпустить ее для Linux, а не для iOS?

Ответ 1

Существует много обычных настольных приложений, которые используют GNUstep (бесплатная версия Cocoa API) в Linux.

Для игр вы можете попробовать sdlobjc - привязку SDL для Objective-C.

Существует даже дистрибутив Linux под названием Étoilé, в котором используется пользовательская среда, основанная на GNUstep, и все собственные приложения графического интерфейса написаны в Objective-C.

Если вы хотите узнать, как программировать в Objective-C, используя GNUstep в Linux (или cygwin), есть некоторые возможные проблемы:

  • Вы должны использовать cygwin в окнах для создания приложения. Это означает, что он:

    a) некоторые приложения могут быть замедлены из-за перевода cygwin вызовов API POSIX на вызовы API Win32. Например, вызов fork() будет транслироваться в вызове Win32 CreateProcess и некоторых других и будет менее эффективным, чем в UNIX.

    b) ваше приложение должно быть распространено с dll cygwin

    c) ваше приложение не может быть 64-битным (по крайней мере пока)

    d) приложение увидит все ваши диски Windows в составе иерархии файловой системы unix (c: и d: будет /cygdrive/c и /cygdrive/d), и вы будете иметь /bin/tmp/usr/etc avialable под /.

  • Там нет современных книг о GNUstep или о программировании Objective-C, не использующих Mac OS. Thre - книга Стивена Кочана "Программирование в Objective-C 2.0 (2nd Edition)", где он, к сожалению, дает объяснение того, как создавать даже базовые примеры под Linux или Windows. Надеюсь, это исправлено в 3-м издании.

  • GNUstep имеет собственные темы, поэтому приложения могут быть разными, чем приложения GTK Linux в Linux или обычное тематическое приложение в Windows.