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ビットマシン用にビルドを試みました(ビルドは再び失敗します)。これは明らかにリンカーエラーですが、ヘッダーファイルは標準で含まれているフレームワークから呼び出され、 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)
して、クリーンでビルドしてみてください。