Проблемы при компиляции Objective C с Clang (Ubuntu)

Я изучаю язык Objective-C. Поскольку у меня нет Mac, я компилирую и запускаю свой код на платформе Ubuntu 11.04.

До сих пор я использовал gcc для компиляции. Я установил GNUStep, и все заработало. Но затем я начал пробовать некоторые функции Objective-C 2.0, такие как @property и @synthesize, которые gcc не поддерживает.

Я попытался скомпилировать код с помощью Clang, но мне кажется, что он неправильно связывает мой код с библиотеками GNUStep, даже с простой программой Hello world.

Например, если я компилирую следующий код:

#import <Foundation/Foundation.h>

int main(void) {
  NSLog(@"Hello world!");
  return 0;
}

Вывод компилятора:

/tmp/cc-dHZIp1.o: In function `main':
test.m:(.text+0x1f): undefined reference to `NSLog'
/tmp/cc-dHZIp1.o: In function `.objc_load_function':
test.m:(.text+0x3c): undefined reference to `__objc_exec_class'
collect2: ld returned 1 exit status
clang: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)

Я использую для компиляции команду

clang -I /usr/include/GNUstep/ test.m -o test

с директивой -I для включения библиотек GNUStep (в противном случае , Clang не может найти Foundation.h).

Я погуглил свою проблему и посетил веб-страницы GNUStep и Clang, но не нашел решения. Так что любая помощь будет оценена по достоинству.

Спасибо!

10
задан eze.scaruli 30 March 2014 в 03:29
поделиться