这是我第一次使用Xcode 4.6.3。
我试图写一个非常简单的控制台程序,搜索配对的BT设备,并将其打印到NSLog。
它构建与以下错误:
Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_IOBluetoothDevice",referenced from: objc-class-ref in main.old: symbol(s) not found for architecture x86_64clang: error: linker command Failed with exit code 1 (use -v to see invocation)
我搜索像疯了。常见的问题应该是引用一个文件,其中只导入头文件,并且链接器找不到实现(* .m-file)。然而,IOBluetooth库是一个标准的框架,像Foundation框架。
我上面的语句中缺少什么?
我也试过构建一个32位机器(构建失败了)。这显然是一个链接器错误,但是我不知道,它的相关,除了有一个问题,找到IOBluetoothDevice的实现,在x86和x64架构,而头文件是从一个标准包括框架,称为IOBluetooth?
为了您的信息我的主代码“main.m”是:
#import <Foundation/Foundation.h>#import <IOBluetooth/objc/IOBluetoothDevice.h> // Note the import for bluetooth#import <IOBluetooth/objc/IOBluetoothDeviceInquiry.h> // Note the import for bluetoothint main(int argc,const char * argv[]){ @autoreleasepool { IOBluetoothDevice *currentDevice; NSArray *devices = [ IOBluetoothDevice pairedDevices]; for (ID currentDevice in devices){ NSLog(@"%i : %@",[ currentDevice classOfDevice ],[ currentDevice name ]); } } return 0;}
感谢任何帮助或指向正确的方向。
解决方法 它看起来像你缺少,包括项目中的IOBluetooth.framework。您可以通过以下方式添加:– 点击左侧窗格左上角的项目(蓝色图标)。
– 在中间窗格中,单击“构建阶段”选项卡。
– 在“link Binary With librarIEs”下,单击加号按钮。
– 从列表中找到IOBluetooth.framework,然后点击Add。
这将确保链接器找到IOBluetooth.framework定义。您可以看到框架是您的目标的成员,通过点击左窗格中的框架,并在右窗格中看到框架的目标成员资格(注意,我已将框架移动到框架组下的组织目的):
总结以上是内存溢出为你收集整理的objective-c – Xcode构建失败“架构x86_64的未定义符号”全部内容,希望文章能够帮你解决objective-c – Xcode构建失败“架构x86_64的未定义符号”所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)