Вопрос

Я изучаю Objective-C в Linux (Ubuntu), но когда я попытался скомпилировать свое приложение, которому нужны заголовки Foundation, я получил сообщение об ошибке, в котором говорится, что файл не может быть найден, но я установил пакет разработки GNUstep (gnustep-devel).Вот мой код:

// Fraction.h
#import <Foundation/NSObject.h>

@interface Fraction: NSObject {
    int numerator;
    int denominator;
}

- (void) print;
- (void) setNumerator: (int) n;
- (void) setDenominator: (int) d;
- (void) numerator;
- (void) denominator;
@end

А вот консольный журнал:

ubuntu@eeepc:~$ gcc main.m -o frac -lobjc
In file included from main.m:3:
Fraction.h:2:26: error: objc/NSObject.h: No such file or directory
In file included from main.m:3:
Fraction.h:4: error: cannot find interface declaration for ‘NSObject’, superclass of ‘Fraction’
ubuntu@eeepc:~$

Что мне нужно сделать?

Это было полезно?

Решение

Процесс установки GNUstep Для Windows

  1. Перейдите по URL-адресу: http://ftpmain.gnustep.org/pub/gnustep/binaries/windows/
  2. Загрузите исполняемый файл gnustep-system-0.19.2-setup.exe
  3. Затем скачивайте gnustep-core-0.19.2-setup.exe

Помните одну вещь, если вы загружаете gnustep-систему любой версии, вам необходимо загрузить ту же версию для gnustep-core.Например, если вы загрузили gnustep-setup-0.22.1-setup.exe тогда вам необходимо загрузить gustep-core-0.22.1-setup.exe в противном случае ваш код не будет выполняться.

  1. Установите сначала gnustep-system-0.19.2-setup.exe затем установите gnustep-core-0.19.2setup.exe.Не пытайтесь устанавливать в обратном порядке.
  2. Теперь у вас есть gnustep для Windows, затем перейдите в меню пуск> все программы> GNUstep> оболочка
  3. Теперь откройте редактор notepad и напишите в notepad следующий код
#import  
int main (int argc, const char * argv[])
{
  NSAutoreleasePool * pool = [[NSAutoreleasePool alloc]  
init];
  NSLog (@"Anil Kumar Yadav has Run the First Objective C  
program!");
  [pool drain];
  return 0;
}

сохраните его как hello.m в вашем C:/GNUstep/home/foldername Помните, что foldername - это имя, когда вы впервые запускаете оболочку, она создает среду и создает папку по имени вашего компьютера в папке C:/GNUstep/home .Так что не паникуй. Хорошо

  1. Перейдите в свою оболочку и введите следующую команду gcc -o hello привет.m -I /GNUstep/System/Library/Headers -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base -constant-string-class=NSConstantString
  2. Эта команда создаст файл hello.exe в вашей папке foldername.
  3. Снова в командной строке введите команду ./hello.exe

Наконец, вы сможете увидеть выходные данные в командной оболочке.

Настройка вы успешно написали свою первую программу Objective C.Нужны какие-либо разъяснения, напишите мне по адресу :ayadav00009@gmail.com

Другие советы

как вы его компилируете?Для меня я создаю GNUMakefile создайте файл для моего приложения (см. здесь), а потом я бегу source /usr/share/GNUstep/Makefiles/GNUstep.sh и тогда make.

Я поискал в репозитории, а затем установил библиотеку foundation, теперь все работает.

Спасибо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top