我正在尝试使用mingw32中的以下命令编译我的OpenCL应用程序: mingw32-gcc -o plat plat.c
但是我收到了这个错误: CL / cl.h没有这样的文件或目录
我在网上和网站上多次搜索但是找不到任何好的答案。 我做了所有的工作,但它仍然会出错。 我使用AMD Radeon HD 5470并在win 7上安装了最新的催化剂驱动程序和AMD APP SDK 2.8 我已经安装了VS 2012
在我的代码中我使用了几个希望工作的状态,但......它仍然会产生同样的错误
我也用过-I& -L在编译命令中它仍然会出错:CL / cl.h没有这样的文件或目录
我怎么不知道如何使用 make file 来编译代码
任何帮助我的人都会非常感激: mehdioraki59@yahoo.com
我的系统是:dell studio 1558
这是我非常简单的测试代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#ifdef MAC
#include <OpenCL/cl.h>
#else
#include <C:\Program Files (x86)\AMD APP\include\CL\cl.hpp>
//#include <CL/cl.h> >>>>>>> i manually disabled this line but there is still error
#endif
int main() {
cl_platform_id *platforms;
cl_uint num_platforms;
cl_int i, err, platform_index = -1;
char* ext_data;
size_t ext_size;
err = clGetPlatformIDs(1, NULL, &num_platforms);
if(err < 0) {
perror("Couldn't find any platforms.");
exit(1);
}
free(platforms);
return 0;
}
答案 0 :(得分:0)
您需要在构建命令中添加-I“C:\ Program Files(x86)\ AMD APP \ include”,告诉mingw32-gcc在哪里找到CL / cl.h。使用它,#include行应该可以正常工作。
答案 1 :(得分:0)
我终于找到了答案也谢谢你先生: 你的建议如何帮助我更多 我使用这个make文件: PROJ = qwerty_mehdi CC =的mingw32-GCC CFLAGS = -Wall LIB = -lOpenCL ifdef AMDAPPSDKROOT INC_DIRS = “$(AMDAPPSDKROOT)包括” LIB_DIRS = “$(AMDAPPSDKROOT)的lib \ X86” 其他 ifdef NVSDKCOMPUTE_ROOT INC_DIRS = “$(NVSDKCOMPUTE_ROOT)\ OpenCL的\ COMMON \ INC” LIB_DIRS = “$(NVSDKCOMPUTE_ROOT)\ OpenCL的\ common \ lib文件\ Win32的” 万一 万一 $(PROJ):qwerty.c $(CC)$(CFLAGS)-o $ @ $ ^ -I $(INC_DIRS)-L $(LIB_DIRS)$(LIB)
并删除了这一行: #include
之后,.exe成功了
在make文件代码行中,qwerty.c是我之前解释过的代码。