일부 iOS 코드에 64 비트 지원을 추가 할 때 x8632 아키텍처 (64 비트 iOS 시뮬레이터)에서는 nlist 기능을 사용할 수 없습니다. nlist()를 호출하는 코드는 다른 모든 아치 (armv7, armv7s, arm64 및 i386)에서 올바르게 작동하지만 링커가 링크 된 라이브러리에서 심볼을 찾지 못하는 x86_64에서는 성공적으로 빌드되지 않습니다.아키텍처 x86_64에 대한 정의되지 않은 기호 : "_nlist"
그것은 단순히 추가하여 엑스 코드로 만든 템플릿 프로젝트에 재현 할 수 있습니다에서 참조,
"_nlist"
#import <mach-o/nlist.h>
int testnlist()
{
struct nlist nl[2];
bzero(&nl, sizeof(struct nlist) * 2);
return nlist("test", nl);
}
결과에 : 아키텍처 x86_64에 대한
정의되지 않은 문자 : ViewController.o의 _testnlist
ld : 아키텍처 x86_64에 대한 심볼이 없습니다.
iOS SDK가 설치된 Xcode 6.1.1 : 8.1, iPhone 6 시뮬레이터 용으로 테스트되었습니다. 애플은 x86_64에 대한 내장 된 시뮬레이터의 공유 라이브러리의 일부를 포함하도록 잊어 버린 수도 있지만 나는 또한 바보 뭔가를 분명 내려다 수 있습니다처럼
는`당신이 시도가, 호기심의 아웃
... 나에게 보이는 nlist_64'? –
아니, 나는 (나는 그 존재를 정말로 알지 못했다) 그러나 나는 확실히 그것을 시도 할 것이다. –
아, 알겠습니다. 'nlist_64'는 64 비트를위한 심볼 테이블 엔트리 구조이지만 nlist() 함수는 여전히 사라져 있습니다. –