2014-12-23 1 views
4

iOS (증강 현실) 용 Vuforia 라이브러리로 작업하고 있습니다. 라이브러리 프레임 워크는 armv7 및 v7s arch 용으로 만 컴파일되므로 시뮬레이터 (i386 arch)에서 실행되지 않습니다. 시뮬레이터 내 응용 프로그램의 나머지 부분을 테스트하기 위해 나는 같은 컴파일러 매크로에 vuforia 기능을 참조 내 코드의 일부를 포장 한 :이 내 오류가 한 왼쪽 카운트 다운 촬영하고있다Xcode 컴파일러 매크로 TARGET_IPHONE_SIMULATOR

#if TARGET_IPHONE_SIMULATOR 
    //do simulator stuff 
#else 
    //do vuforia stuff 
#endif 

을 - 아키텍처 i386을위한 정의되지 않은 심볼 : 어떤 내가 없애 수없는 것 "QCAR :: 렌더러 ::의 getInstance()"에서 참조 : SampleMath :: projectScreenPointToPlane ... 내가 SampleMath을 발견

을 .cpp 그리고 renderer.getInstance에 대한 참조에 대한 유일한 호출을 발견하고이를 매크로에 래핑했습니다. 매크로 전체 .h 및 .cpp 파일을 래핑하는 시도했다; 나는 코드가 참조 될 수있는 다른 장소에 대한 내 전체 xcode 프로젝트를 수색했다. 여전히 여러 번 정리하고 OS X + xcode를 다시 시작한 후에도 계속됩니다. 여전히 동일한 컴파일러 오류가 발생합니다. 어떤 아이디어? 그렇다면 많은 감사드립니다.

답변

6

Xcode는 .cpp 파일에서 자동으로 TARGET_IPHONE_SIMULATOR을 정의하지 않는 것 같습니다.

이 솔루션은 사용자의 .cpp 파일의 시작에 삽입하는 것입니다

#include "TargetConditionals.h" 

그런 다음 TARGET_IPHONE_SIMULATOR에 대한 모든 테스트가 작동합니다.

+1

감사합니다. 나는 임시 해결책을 찾았습니다. 그러나 그것은 도움이된다! – Reece