访问NSSpeechSynthesizer时链接错误

时间:2010-11-05 18:04:32

标签: objective-c cocoa linker

我正在尝试使用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级-REF到NSSpeechSynthesizer   in byc.o ld:未找到符号   collect2:ld返回1退出状态

有人知道发生了什么事吗???

1 个答案:

答案 0 :(得分:1)

您导入了标头,因此编译工作正常,但链接失败,因为您没有链接到提供NSSpeechSynthesizer的框架。您需要链接Application Kit框架(除了Foundation)或Cocoa伞框架(而不是Foundation)。

无论您选择哪个框架,都要将其添加到项目组树中的Linked Frameworks组(右键单击该组并选择“添加现有框架”),并确保将其添加到目标。