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 ビット マシン用にビルドしようとしました (ビルドは再び失敗します)。これは明らかにリンカー エラーですが、それが何に関連するのかはわかりませんが、x86 と x64 の両方のアーキテクチャで IOBluetoothDevice の実装を見つける際に問題があることを除いて、ヘッダー ファイルは標準の組み込みフレームワークからのものであり、 IOブルートゥース?
参考までに、私のメインコード「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;
}
正しい方向への助けや指針をありがとう。