Android.mk кажется, игнорирует LOCAL_C_INCLUDES и не может найти GLES2 includes

#android #java-native-interface #android-ndk

#Android #java-native-interface #android-ndk

Вопрос:

В настоящее время я пытаюсь запустить образец проекта из FastCV API от Qualcomm. Поскольку eclipse не смог найти ни одного из требуемых включений, я попытался добавить путь к Android.mk . Я прочитал предоставленные документы об этом, и можно было бы просто добавить путь к includes через LOCAL_C_INCLUDES . Но NDK, похоже, игнорирует путь и все еще жалуется на отсутствие включений. Когда я добавляю тот же путь в список «Включить каталог» через свойства проекта, он работает нормально, кроме того, eclipse по-прежнему не находит файлы GLES2.

Образец должен включать в себя:

 #include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <stdlib.h>
#include <android/log.h>
#include <time.h>
#include <fastcv/fastcv.h>
 

И Android.mk выглядит примерно так:

 LOCAL_C_INCLUDES  =  vendor/qcom-proprietary/blur/tests/fastcvsample/jni 
                     vendor/qcom-proprietary/blur/lib/fastcv/inc 
                     platforms/android-9/arch-arm/usr/include
 

Это не работает. Если я добавлю C:android-ndk-r6platformsandroid-9arch-armusrinclude для includes через eclipse он найдет все файлы, кроме двух GLES2 (но они определенно находятся в этом каталоге). Любые намеки на то, что я делаю неправильно?

nkd-build сообщает об этом:

 C:/fastcv-android-1-0-2/samples/fastcorner/jni/FastCVSample.cpp:14:23: error: GLES2/gl2.h: No such file or directory
C:/fastcv-android-1-0-2/samples/fastcorner/jni/FastCVSample.cpp:15:26: error: GLES2/gl2ext.h: No such file or directory
 

Комментарии:

1. Попробуйте поместить его в Application.mk также

Ответ №1:

Понял. Вам нужно очень внимательно прочитать инструкции по установке, там упоминается несколько библиотек, которые необходимо скопировать. Вы также должны следить за тем, в какой каталог API вы его копируете. Поскольку образец ориентирован на уровень API 8, вам нужно скопировать его в папку andriod-8, а не -9 или что-то еще, что вы используете. Записи в файлах mk, похоже, не нужны.

Ответ №2:

По какой-то причине ndk-build ищет требуемую библиотеку в более низких версиях API, но когда он находит fastcv, он не найдет GLES2. Убедитесь, что вы скопировали библиотеки fastcv только в те версии, в которых определен GLES2.