Android Studio致命错误:CL / cl.h没有这样的文件或目录

时间:2015-03-16 16:52:00

标签: android android-studio android-ndk opencl

我正在尝试在Android Studio中构建一个openCL程序并继续遇到以下问题:

Android Studio fatal error: CL/cl.h No such file or directory

我一直在寻找,一切都是" visual studio"的解决方案。

我认为如果我们有专门针对Android Studio列出的解决方案并且此错误可能会有所帮助。

任何想法如何解决这个问题?我看到引用here似乎是从命令行运行gcc。我想这只是从Android Studio工作。

1 个答案:

答案 0 :(得分:1)

OpenCL不是Android的一部分,所以你找不到cl.h. 从此处下载必要的CL头文件:https://www.khronos.org/registry/cl/

使用正确的版本下载cl.h(与您使用的CL版本相同,例如,CL 1.1)。

在您的OpenCL程序中包含头文件,然后您就可以了。


2015年4月18日编辑:

要包含OpenCL头文件,您可以执行以下操作:

#ifdef __APPLE__
#include <OpenCL/opencl.h>
#else
#include <CL/opencl.h>
#endif

但如果你的程序是一个纯粹的CL代码(没有CL-GL互操作性),那么简单地包含CL / cl.h也应该有效:

#include <CL/cl.h>

执行此操作后,您应该将包含CL文件夹的文件夹添加到makefile的include路径中。 (以下假设PATH_TO_CL_FOLDER是您的CL文件夹)

对于使用Android.mk

的用户

如果您使用Application.mk和Android.mk,并使用传统的ndk-build方式构建本机库,则应将CL目录的路径添加到Android.mk中的LOCAL_C_INCLUDES variable中。

LOCAL_C_INCLUDES += PATH_TO_CL_FOLDER

对于在Android Studio中使用Gradle的人(这是您需要的)

编辑build.gradle,在cFlags字段中添加包含路径,如下所示:

android {
  defaultConfig {
    ndk {
                moduleName "yourlib"
                stl "stlport_static"
                ldLibs "log", "z"
                cFlags "-IPATH_TO_CL_FOLDER"
        }
    ...
  }
  ...
}