Objective c 文本输入源服务为架构x86_64提供Mach-O链接器错误?

Objective c 文本输入源服务为架构x86_64提供Mach-O链接器错误?,objective-c,macos,Objective C,Macos,我正在尝试使用文本输入源服务检测当前键盘布局: TISInputSourceRef source = TISCopyCurrentKeyboardInputSource(); //Mach-O Linker Error NSLog(@"languages: %@", TISGetInputSourceProperty(source, kTISPropertyInputSourceLanguages)); NSLog(@"localized name: %@", TISGetInputSource

我正在尝试使用文本输入源服务检测当前键盘布局:

TISInputSourceRef source = TISCopyCurrentKeyboardInputSource(); //Mach-O Linker Error
NSLog(@"languages: %@", TISGetInputSourceProperty(source, kTISPropertyInputSourceLanguages));
NSLog(@"localized name: %@", TISGetInputSourceProperty(source, kTISPropertyLocalizedName));
这是我提到的“现代”碳功能:
#import

文档:(不要提及关于x86和x64的任何内容)


有什么原因我不能将TIS与
x86\u 64
编译器一起使用吗?

多亏了Bavariage对qusetion的评论,我添加了Carbon.framework,而不仅仅是
#包含它。回答一个真正的
堆栈溢出回答
,我会投票

我刚刚测试了您的代码,它构建得很好(10.7SDK,x86_64)。你确定你在连接碳框架吗?仅导入头文件是不够的。我还需要做什么?xcode自动完成功能建议使用“TISCopyCurrentKeyboardInputSource()”,因此我认为这意味着我成功地使用了它们……在xcode 4中,在左窗格的树状视图中选择项目,然后选择目标,选择摘要,在链接的框架和库中单击+,选择Carbon.framework,单击Add.No,添加碳。框架是解决问题的部分。尝试使用
#import
并添加Carbon.framework.Hmm,我可以发誓我在不添加框架的情况下先将其更改为
include
,而且效果很好。我想不是。答案澄清了。他没有回答:/@cks我在等你确认连接碳是问题所在!不过,你可以回答并接受自己的答案。着手
Undefined symbols for architecture x86_64:
  "_TISCopyCurrentKeyboardInputSource", referenced from:
      -[XXXFILE YYYEVENT:] in ZZZPROJECT.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)