我正在尝试使用XCode编译一个简单的命令行工具:
#import <Cocoa/Cocoa.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
//NSSpeechSynthesizer *speeker = [[NSSpeechSynthesizer alloc] initWithVoice: nil];
NSLog(@"%@", [NSSpeechSynthesizer availableVoices]);
NSLog(@"Hello, World!");
[pool drain];
return 0;
}
甚至以为我要导入Cocoa.h,但出现链接错误:
未定义的符号:
“ _OBJC_CLASS _ $ _ NSSpeechSynthesizer”,
引用自:
objc-class-ref-to-NSSpeechSynthesizer
在byc.o ld中:未找到符号
collect2:ld返回1退出状态
任何人都知道发生了什么事吗?
最佳答案
您导入了标头,因此编译可以正常进行,但是由于未针对提供NSSpeechSynthesizer的框架进行链接而导致链接失败。您需要链接到Application Kit框架(除Foundation之外)或Cocoa伞框架(而不是Foundation)。
无论选择哪种框架,都将其添加到项目的组树中的“链接框架”组中(通过右键单击该组并选择“添加现有框架”),并确保也将其添加到目标中。