1

我得到了什么:Ubuntu 12.04、clang、gnustep-devel、gnustep、libobjc2

所以我正在尝试编译一个简单的程序

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
NSAutoreleasePool * pool = [NSAutoreleasePool new];
NSLog(@"Hi");
[pool drain];

return 0;
}

像这样编译:clang prog.m -I /usr/include/GNUstep/ -D_NATIVE_OBJC_EXCEPTIONS -lgnustep-base -fconstant-string-class=NSConstantString 没问题,一切都很完美并且工作正常

但是如果我想使用自动释放池:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    @autoreleasepool {
        NSLog(@"Hello, World!");
    }

return 0;
}

并以我遇到错误的方式编译它:

undefined reference to `objc_autoreleasePoolPush' 
undefined reference to `objc_autoreleasePoolPop'

google了很久也没找到解决办法,也许有人解决了同样的问题?

4

0 回答 0