Une question pour les débutants en Xcode :
C'est ma première expérience avec Xcode 4.6.3.
J'essaie d'écrire un programme de console très simple, qui recherche les périphériques BT appariés et les imprime dans un NSLog.
Il se construit avec l'erreur suivante :
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)
J'ai cherché comme un fou. Le problème commun devrait être une référence à un fichier, dont seuls les fichiers d'en-tête sont importés et aucune implémentation (*.m-file) n'est trouvée par le linker. La bibliothèque IOBluetooth est pourtant un Framework standard comme le Framework Foundation.
Qu'est-ce que j'ai manqué dans ma déclaration ci-dessus ?
J'ai également essayé de le construire pour une machine 32 bits (la construction échoue à nouveau). Il s'agit clairement d'une erreur de liaison, mais je n'ai aucune idée de ce à quoi elle se rapporte, si ce n'est qu'il y a un problème pour trouver l'implémentation de IOBluetoothDevice, sur les architectures x86 et x64, alors que les fichiers d'en-tête proviennent d'un Framework standard inclus, appelé IOBluetooth ?
Pour votre information, mon code principal "main.m" étant :
#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;
}
Merci pour toute aide ou indication dans la bonne direction.