1

所以我正在尝试建立一种方法来轻松开发 OpenCL 程序,结果证明这是迄今为止学习这门语言最难的部分。我在源文件中包含 CL/cl.h,但我不断收到头文件不存在的编译器错误。当我将包含更改为仅 cl.h 时,它可以工作,但到目前为止我看到的每个程序都使用 CL/cl.h,所以我假设它是某种宏来允许任一文件。有什么想法可以解决这个问题或可能的修复吗?

这是我的makefile

项目=ocl_intro

CC=mingw32-g++

CFLAGS=-std=c99 -Wall

LIB=-lOpenCL

ifdef INTELOCLSDKROOT

INC_DIRS="$(INTELOCLSDKROOT)include\CL"

LIB_DIRS="$(INTELOCLSDKROOT)lib\x86

万一

$(项目):$(项目).cpp

$(CC) $(CFLAGS) -o $@ $^ -I$(INC_DIRS) -L$(LIB_DIRS) $(LIB)

.PHONY:干净

干净的:

rm $(PROJ).exe
4

1 回答 1

1

改变:

INC_DIRS="$(INTELOCLSDKROOT)include\CL"

到:

INC_DIRS="$(INTELOCLSDKROOT)include"

您正在寻找“CL/cl.h”,显然它不会在“include\CL”中找到名为“CL”的文件夹,因为您已经将“CL”文件夹作为搜索路径。就像现在一样,您实际上是在要求编译器找到“\include\CL\CL\cl.h”,显然编译器将失败,因为该文件不存在。

您只需提供“包含”文件夹的路径 - 其余的将由约定完成。

于 2013-01-20T03:47:04.183 回答