Вопрос начинающего 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-файл). Библиотека IOBluetooth, однако, является стандартной платформой, такой как Foundation Framework.
Чего мне не хватает в моем заявлении?
Я также попытался собрать его для 32-битной машины (сборка снова не удалась). Это явно ошибка компоновщика, однако я понятия не имею, с чем это связано, за исключением того, что существует проблема с нахождением реализации для IOBluetoothDevice, как для архитектуры x86, так и для архитектуры x64, в то время как заголовочные файлы взяты из стандартного включенного Framework, называемого 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 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;
}
Спасибо за любую помощь или указатели в правильном направлении.
$(inherited)
в другие флаги компоновщика , чистый и сборки.