Une question pour un débutant 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 appareils BT jumelés et les imprime sur 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 courant 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 l'éditeur de liens. La bibliothèque IOBluetooth est cependant un Framework standard comme le Foundation Framework.
Qu'est-ce que je manque dans ma déclaration ci-dessus?
J'ai également essayé de le construire pour une machine 32 bits (la construction échoue à nouveau). C'est clairement une erreur de l'éditeur de liens, mais je n'ai aucune idée de ce qu'il se rapporte, sauf qu'il y a un problème avec la recherche de l'implémentation pour IOBluetoothDevice, à la fois sur l'architecture x86 et x64, alors que les fichiers d'en-tête proviennent d'un Framework standard inclus, appelé IOBluetooth?
Pour 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.
$(inherited)
à d' autres indicateurs de liens, nettoyez et construisez.