objective-c - Xcode 构建失败 "Undefined symbols for ar

一个 Xcode 初学者的问题:

这是我第一次使用 Xcode 4.6.3。

我正在尝试编写一个非常简单的控制台程序,用于搜索配对的 BT 设备并将它们打印到 NSLog。

它构建时出现以下错误:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_IOBluetoothDevice", referenced from:
      objc-class-ref in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我疯狂地搜索。常见的问题应该是对文件的引用,其中只有头文件被导入,链接器没有找到实现(*.m-file)。然而,IOBluetooth 库是一个类似于 Foundation Framework 的标准框架。

我在上述陈述中遗漏了什么?

我也尝试过为 32 位机器构建它(构建再次失败)。这显然是一个链接器错误,但我不知道它与什么相关,除了在 x86 和 x64 架构上查找 IOBluetoothDevice 的实现时存在问题,而头文件来自标准包含的框架,称为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 bluetooth


int 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。您可以通过以下方式添加它:

  • 单击左 Pane 左上角的项目(蓝色图标)。

  • 在中间 Pane 中,单击“构建阶段”选项卡。

  • 在“Link Binary With Libraries”下,点击加号按钮。

  • 从列表中找到 IOBluetooth.framework 并点击添加。

这将确保链接器找到 IOBluetooth.framework 定义。您可以通过单击左 Pane 中的框架并在右 Pane 中查看框架的目标成员资格来查看框架是目标的成员(注意,出于组织目的,我已将框架移动到框架组下):

关于objective-c - Xcode 构建失败 "Undefined symbols for architecture x86_64",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18408531/

相关文章:

objective-c - Objective-C 中的 NSString 标记化

ios - 以编程方式滚动 UIScrollView

ios - 如何以编程方式获取 iphone 的 MAC 地址

ios - 为什么 NSUserDefaults 无法在 iOS 中保存 NSMutableDict

ios - 当我在 UITextField 中按返回键时如何隐藏键盘?

ios - 在 Objective-C 中从 NSMutableArray 中删除重复值的最佳方法是

ios - iOS 上 Objective-C 中的类型

objective-c - 声明一个 block 方法参数而不使用 typedef

objective-c - 如何将字符串转换为 double ,反之亦然?

ios - 调整 UITableView 的大小以适应内容