Xcode初学者的问题:这是我第一次使用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文件)。但是,IOBluetooth库是类似于Foundation Framework的标准框架。我在上述声明中缺少什么?我也尝试过为32位计算机构建它(构建再次失败)。显然,这是一个链接器错误,但与它的关系不知道,除了在x86和x64体系结构上查找IOBluetoothDevice的实现存在问题之外,而头文件来自一个包含在标准中的Framework(称为IO蓝牙?供您参考,我的主要代码“ 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;}感谢您的帮助或指向正确方向的指示。
3 回答
拉风的咖菲猫
TA贡献1995条经验 获得超2个赞
架构x86_64的未定义符号:“ _ OBJC_CLASS _ $ _ xxx”,引用自:yyy.o中的objc-class-ref
这通常意味着您正在从类“ yyy”中调用“ xxx”(它可以是框架或类)。编译器无法找到“ xxx”,因此会发生此错误。
您需要通过在导航器窗口中右键单击项目文件夹并单击“ 将文件添加到“ YourProjectName ” “选项来添加丢失的文件(在本例中为“ xxx”)。
弹出窗口将在Finder中打开您的项目文件。在这里,您可以看到丢失的文件,然后将它们添加到您的项目中。不要忘记选中“ 如果需要复制项目 ”框。祝好运!!
- 3 回答
- 0 关注
- 684 浏览
添加回答
举报
0/150
提交
取消