Pertanyaan pemula Xcode:
Ini adalah pengalaman pertama saya dengan Xcode 4.6.3.
Saya mencoba untuk menulis program konsol yang sangat sederhana, yang mencari perangkat BT berpasangan dan mencetaknya ke NSLog.
Itu dibangun dengan kesalahan berikut:
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)
Saya mencari seperti orang gila. Masalah umum harus menjadi referensi ke file, yang hanya file header yang diimpor dan tidak ada implementasi (* .m-file) ditemukan oleh linker. Namun perpustakaan IOBluetooth, Kerangka kerja standar seperti Kerangka Kerja Yayasan.
Apa yang saya lewatkan dalam pernyataan saya di atas?
Saya juga telah mencoba membangunnya untuk mesin 32-bit (build gagal lagi). Ini jelas merupakan kesalahan linker, namun saya tidak tahu, apa hubungannya, kecuali bahwa ada masalah dengan menemukan implementasi untuk IOBluetoothDevice, pada arsitektur x86 dan x64, sedangkan file header berasal dari standar termasuk Kerangka, yang disebut IOBluetooth?
Untuk informasi Anda, kode utama saya "main.m" adalah:
#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;
}
Terima kasih atas bantuan atau petunjuk ke arah yang benar.
$(inherited)
ke Bendera Penghubung Lainnya , bersihkan dan bangun.