Eclipse #ifdef грешка при използване на JNI, Android NDK и Vuforia

С примерното приложение ImageTargets на Vuforia се опитах да използвам 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++ Build -> Опции за откриване -> Поставете отметка на „Автоматизирано откриване на пътища и символи“

person t2k32316    schedule 06.03.2013