Компилируем код Objective-C на Linux

Objective-C — объектно ориентированный язык созданий на основе Си. Разрабатывается и используется он компанией Apple, если вы не в курсе.. Поскольку Mac девайс стоит дорого, а платят девелоперам за такие знания не мало, хочется выучится…
И есть способ. Поможет нам Linux. Objective-C входит в GCC и доступен на большинстве основных платформ.

Я буду использовать Fedora linux 15, в вашем дистрибутиве названия пакетов могут слегка изменятся, но это легко обнаружить при помощи менеджера…

Прежде всего необходимо установить GNUstep. Это набор библиотек для компиляции Objective-C.

yum install gnustep gnustep-devel

Смею предположить, что для Ubuntu команда выглядит так:

sudo apt-get install gnustep gnustep-devel

Теперь создайте hello.m с таким кодом (hello world):

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

        NSLog (@"hello world");
        [pool drain];
        return 0;
}
Войдите в терминал. В папку с файлом. Выполните команду (мне понадобились права root):

. /usr/share/GNUstep/Makefiles/GNUstep.sh

или (разработчики указали,а у меня не так):

. /usr/lib64/GNUstep/Makefiles/GNUstep.sh

Эту команду нужно выполнять каждый раз при входе в терминал с целью компиляции Objective-C.
Компилируем:

gcc `gnustep-config —objc-flags` -lgnustep-base -lobjc hello.m -o hello
Если всё успешно, запускаем:

 

./hello

Мне понадобилось установить пакет gcc-objc.
Вывод программы такой:

# ./hello

2011-08-12 09:52:59.018 hello[5502] hello world

Удачи.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий

  1. lamazavr

    Спасибо большое, друг! Очень помогло!

    Ответить
  2. lamazavr

    Привет! А не знаешь как русские буквы выводить в консоль из NSLog?!

    Ответить