Objective-C简单hello world无法编译
我在OSX上使用Xcode,以下代码无法编译:Objective-C简单hello world无法编译,objective-c,macos,Objective C,Macos,我在OSX上使用Xcode,以下代码无法编译: #import <Foundation/Foundation.h> int main(int argc, const char *argv[]) { @autoreleasepool { NSLog(@"Hello world!"); } return 0; } 但是,如果我删除autoreleasepool块,那么代码就可以工作了。我也可以编译和运行C和C++代码,但是如果我关闭了AcL并写
#import <Foundation/Foundation.h>
int main(int argc, const char *argv[]) {
@autoreleasepool {
NSLog(@"Hello world!");
}
return 0;
}
但是,如果我删除autoreleasepool块,那么代码就可以工作了。我也可以编译和运行C和C++代码,但是如果我关闭了AcL并写自动的方式,旧的方式:
#import <Foundation/Foundation.h>
int main(int argc, const char *argvc[]) {
NSAutoreleasePool *pool = [[pool alloc] init];
NSLog(@"Hello world!");
[pool drain];
return 0;
}
然后代码也不会编译
完整的错误日志如下所示:
编辑:
我想我从XCode 5.1.1降级到了XCode 5,现在它可以工作了。正如@ahruss提到的,有一个编译器错误,你应该打开一个雷达,因为编译器不应该崩溃,但它可能来自你代码中的错误:
NSAutoreleasePool *pool = [[pool alloc] init];
你的意思是:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
正如@ahruss提到的,有一个编译器错误,你应该打开一个雷达,因为编译器不应该崩溃,但它可能来自你代码中的错误:
NSAutoreleasePool *pool = [[pool alloc] init];
你的意思是:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
那看起来像是叮当声在撞击我;不是编译错误。那是他们的错误,不是你的。那是main.m模块还是main.c模块?他发布的日志上写着main.m。如果它是main.c,那么第一个版本就根本无法编译。我觉得这个版本好像要崩溃了;不是编译错误。那是他们的错误,不是你的。那是main.m模块还是main.c模块?他发布的日志上写着main.m。如果第一个版本是main.c,那么它根本不会编译