Android.mk似乎忽略了LOCAL_C_INCLUDES并且无法找到GLES2包含

时间:2011-11-01 10:21:54

标签: android java-native-interface android-ndk

我目前正在尝试从Qualcomm的FastCV API中获取示例项目。由于eclipse找不到任何必需的包含,我尝试添加到Android.mk的路径。我阅读了有关它的文档,并且可以通过LOCAL_C_INCLUDES简单地添加包含的路径。但NDK似乎忽略了这条道路,仍然抱怨失踪包括。当我通过项目属性将相同的路径添加到“包含目录”-list时,它在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

这不起作用。如果我通过eclipse将 C:\ android-ndk-r6 \ platforms \ android-9 \ arch-arm \ usr \ include 添加到include中,它将找到除了两个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

2 个答案:

答案 0 :(得分:1)

知道了。您需要非常仔细地阅读install instructions,提到了需要复制的几个库。您还必须查看复制它的API目录。由于样本面向API级别8,因此需要将其复制到andriod-8文件夹中,而不是-9或其他任何使用的文件夹。 mk文件中的条目似乎没有必要。

答案 1 :(得分:1)

由于某些原因,ndk-build在较低的API版本中搜索所需的库,但是当它找到fastcv时,它将找不到GLES2。确保仅将fastcv库复制到已定义GLES2的版本。