Не могу скомпилировать код Objective-C с помощью clang - PullRequest
2 голосов
/ 15 марта 2012

Я получаю следующую ошибку со следующим кодом Objective-C, пытаясь скомпилировать его с помощью clang.

Код Obj-C:

// first program example

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    @autoreleasepool {
       NSLog (@"Programming is fun!");
    }
    return 0;
}

Сообщение об ошибке:

main.m:6:5: error: unexpected '@' in program
    @autoreleasepool {
    ^
main.m:7:38: error: extraneous ')' before ';'
    NSLog (@"Programming is fun!");
                                 ^
main.m:7:16: warning: expression result unused [-Wunused-value]
    NSLog (@"Programming is fun!");
           ^~~~~~~~~~~~~~~~~~~~~~
main.m:9:5: error: expected identifier or '('
    return 0;
    ^
main.m:10:1: error: expected external declaration
}
^
1 warning and 4 errors generated.

Я могу без ошибок скомпилировать в XCode.

Информация о лягушке: Apple Clang версия 2.1 (теги / Apple / clang-163.7.1) (на основе LLVM 3.0svn) Цель: x86_64-apple-darwin11.3.0 Модель резьбы: posix

Ответы [ 3 ]

5 голосов
/ 16 марта 2012

Вам нужен clang v3.0 или выше, чтобы использовать @autoreleasepool.

3 голосов
/ 21 марта 2012

Предположим, у вас есть системный путь clang 3.0, с помощью которого вы можете скомпилировать код:

clang -Wall -framework Foundation prog_name.m -o prog_name
2 голосов
/ 15 марта 2012

Вам нужно будет обновить свой Clang; директива @autoreleasepool{} была выпущена одновременно с ARC и требует v3.0 или выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...