Ошибка Eclipse #ifdef при использовании JNI, Android NDK и Vuforia

С образцом приложения Vuforia ImageTargets я попытался использовать OpenGL ES 1.1, установив для USE_OPENGL_ES_1_1 значение true в jni/Android.mk, а также раскомментировав и изменив соответствующую строку в AndroidManifest.xml(). После преобразования проекта так, чтобы он имел перспективу C++, и связывания ndk-build и соответствующих каталогов включения, я смог успешно запустить приложение на своем устройстве Android.

Однако проблема в том, что как только я открываю jni/ImageTargets.cpp, я получаю несколько ошибок от Eclipse, все из мест, где будет выполняться код OpenGL ES 2.0, первая из которых:

Описание Тип расположения пути к ресурсу Символ 'vertexHandle' не может быть разрешен ImageTargets.cpp /ImageTargets/jni строка 402 Семантическая ошибка

Разумеется, vertexHandle определен в верхней части ImageTargets.cpp внутри блока «#ifdef USE_OPENGL_ES_2_0». Поскольку USE_OPENGL_ES_2_0 не определен (согласно Android.mk), код должен быть успешно скомпилирован, и, конечно же, ndk-build не сообщает о каких-либо проблемах. Таким образом, кажется, что только Eclipse сообщает о проблемах, и когда я запускаю проект, Eclipse говорит: «Ваш проект содержит ошибки, исправьте их перед запуском приложения». И поэтому я больше не могу запускать свое приложение. В некотором смысле странно, что этого никогда не происходило, пока я не открыл ImageTargets.cpp и Eclipse не «обнаружил» ошибки.

Лучший обходной путь, который я нашел до сих пор, - это просто удалить или закомментировать эти строки (это не должно вызывать проблем, потому что USE_OPENGL_ES_2_0 не должен быть определен)... Есть ли лучший способ справиться с этой проблемой? Я пропустил настройку в Eclipse, которая должна решить эту проблему?


person t2k32316    schedule 02.03.2013    source источник


Ответы (1)


Я нашел решение: зайдите в свойства проекта -> Сборка C/C++ -> Параметры обнаружения -> Отметьте «Автоматическое обнаружение путей и символов».

person t2k32316    schedule 06.03.2013