2014-12-23 5 views
4

Я работаю с библиотекой Vuforia для iOS (дополненная реальность). Рамка библиотеки скомпилирована только для армв7 и v7s, поэтому она не будет работать в симуляторе (арка i386). Для того, чтобы проверить остальную часть моего приложения в симуляторе я завернуты части моего кода, которые ссылаются на функции vuforia в компилятор макросы как таковые:Xcode Compiler Macro TARGET_IPHONE_SIMULATOR

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

Это принято подсчитывать моя ошибка вниз только один слева - которые я не могу избавиться: неопределенных символов для архитектуры i386: "QCAR :: Renderer :: GetInstance()", ссылочных от: SampleMath :: projectScreenPointToPlane ...

я нашел SampleMath .cpp и нашли один и единственный вызов для ссылки на renderer.getInstance и завернули это в макросы. Я попробовал обернуть весь файл .h и .cpp в макросах; Я искал весь проект xcode для других мест, на которые может ссылаться код. Еще после нескольких чисток и перезагрузки OS X + xcode; все еще получая ту же ошибку компилятора. Есть идеи? Если так, большое спасибо.

ответ

6

Похоже, что Xcode не определяет автоматически TARGET_IPHONE_SIMULATOR в .cpp-файлах.

Раствор для вставки в начале вашего файла .cpp:

#include "TargetConditionals.h" 

Тогда все тесты на TARGET_IPHONE_SIMULATOR будет работать.

+1

спасибо - я нашел обходное решение в среднем; но это полезно! – Reece