我正在尝试使用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退出状态
有人知道发生了什么事吗???
答案 0 :(得分:1)
您导入了标头,因此编译工作正常,但链接失败,因为您没有链接到提供NSSpeechSynthesizer的框架。您需要链接Application Kit框架(除了Foundation)或Cocoa伞框架(而不是Foundation)。
无论您选择哪个框架,都要将其添加到项目组树中的Linked Frameworks组(右键单击该组并选择“添加现有框架”),并确保将其添加到目标。