Câu hỏi dành cho người mới bắt đầu Xcode:
Đây là trải nghiệm đầu tiên của tôi với Xcode 4.6.3.
Tôi đang cố gắng viết một chương trình điều khiển rất đơn giản, đó là tìm kiếm các thiết bị BT được ghép nối và in chúng ra NSLog.
Nó xây dựng với lỗi sau:
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)
Tôi tìm kiếm như điên. Vấn đề phổ biến phải là một tham chiếu đến một tệp, trong đó chỉ có các tệp tiêu đề được nhập và không có triển khai (* .m-file) được tìm thấy bởi trình liên kết. Tuy nhiên, thư viện IOBluetooth là một Khung tiêu chuẩn như Khung nền tảng.
Tôi còn thiếu điều gì trong tuyên bố trên?
Tôi cũng đã thử xây dựng nó cho máy 32 bit (xây dựng lại thất bại). Đây rõ ràng là một lỗi của trình liên kết, tuy nhiên tôi không biết nó liên quan gì, ngoại trừ việc có vấn đề với việc tìm kiếm triển khai cho IOBluetoothDevice, trên cả kiến trúc x86 và x64, trong khi các tệp tiêu đề nằm trong Khung bao gồm tiêu chuẩn, được gọi IOBluetooth?
Để biết thông tin của bạn, mã chính của tôi "main.m" là:
#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;
}
Cảm ơn cho bất kỳ trợ giúp hoặc con trỏ đến đúng hướng.
$(inherited)
vào Cờ liên kết khác , làm sạch và xây dựng.