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)