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 비트 시스템을 위해 빌드를 시도했습니다 (빌드가 다시 실패 함). 그것은 분명히 링커 오류이지만 x86 및 x64 아키텍처 모두에서 IOBluetoothDevice 구현을 찾는 데 문제가 있다는 것을 제외하고는 링커 오류입니다. 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)
하고 청소하고 빌드하십시오.