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

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

我正在尝试在 Android Studio 中构建一个 openCL 程序并将 运行 保存到以下问题中:

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

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

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

有什么解决办法吗?我从命令行看到引用 here 似乎是 运行 gcc。我希望它仅在 Android Studio 中工作。

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 的包含路径中。 (以下假设PATH_TO_CL_FOLDER是你的CL文件夹)

对于那些使用Android.mk

的人

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

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"
        }
    ...
  }
  ...
}