Una domanda per principianti Xcode:
È la mia prima esperienza con Xcode 4.6.3.
Sto cercando di scrivere un programma console molto semplice, che cerca dispositivi BT accoppiati e li stampa su un NSLog.
Si costruisce con il seguente errore:
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)
Ho cercato come un matto. Il problema comune dovrebbe essere un riferimento a un file, di cui vengono importati solo i file di intestazione e che il linker non rileva alcuna implementazione (file * .m). La libreria IOBluetooth è tuttavia un Framework standard come il Foundation Framework.
Cosa mi manca nella mia dichiarazione precedente?
Ho anche provato a costruirlo per una macchina a 32 bit (la build fallisce di nuovo). È chiaramente un errore del linker, tuttavia non ho idea di cosa si riferisca, tranne per il fatto che esiste un problema nel trovare l'implementazione per IOBluetoothDevice, sia sull'architettura x86 che x64, mentre i file di intestazione provengono da un framework incluso standard, chiamato IOBluetooth?
Per tua informazione il mio codice principale "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;
}
Grazie per qualsiasi aiuto o puntatore nella giusta direzione.
$(inherited)
ad altre bandiere Linker , pulisci e costruisci.