我得到了什么: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了很久也没找到解决办法,也许有人解决了同样的问题?