我正在尝试在Android Studio中构建一个openCL程序并继续遇到以下问题:
Android Studio fatal error: CL/cl.h No such file or directory
我一直在寻找,一切都是" visual studio"的解决方案。
我认为如果我们有专门针对Android Studio列出的解决方案并且此错误可能会有所帮助。
任何想法如何解决这个问题?我看到引用here似乎是从命令行运行gcc。我想这只是从Android Studio工作。
答案 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"
}
...
}
...
}