2013-01-20 59 views
1

所以我試圖設置一種方法來輕鬆開發OpenCL程序,這是迄今爲止學習這種語言最難的部分。我在我的源文件中包含CL/cl.h,但是我不斷收到編譯器錯誤,表明頭文件不存在。當我將include僅改爲cl.h時,它可以工作,但到目前爲止我看到的每個程序都使用CL/cl.h,所以我假設它是某種允許這兩個文件的宏。任何想法如何解決這個問題或可能的修復?OpenCL頭文件難度

這是我的生成文件

PROJ = ocl_intro

CC =的mingw32-G ++

CFLAGS = -std = C99 -Wall

LIB = -lOpenCL

IFDEF INTELOCLSDKROOT

INC_DIRS="$(INTELOCLSDKROOT)include\CL" 

LIB_DIRS="$(INTELOCLSDKROOT)lib\x86 

ENDIF

$(PROJ):$(PROJ)的.cpp

$(CC) $(CFLAGS) -o [email protected] $^ -I$(INC_DIRS) -L$(LIB_DIRS) $(LIB) 

.PHONY:清潔

清潔:

rm $(PROJ).exe 
+0

你需要告訴你的編譯器頭文件和庫文件在哪裏。你的IDE是什麼? – Thomas

+0

我正在使用mingw。我擁有所有的路徑。就像我說的,如果我將include語句更改爲#include 而不是#include ,它可以找到這些文件。我只是看到其他人的代碼說第二個符號。我甚至更改爲C++包裝,但該庫對CL/cl.h進行了間接調用,無法找到它。呃,頭痛 – MrWolvwxyz

+0

什麼是你的mingw命令行參數???!我的猜測是你傳遞OpenCL頭文件的include/CL文件夾,而不是所需的include /文件夾。我們不能幫助您,除非您提供實際的數據,除非您找到諸如「可能是」或「我推測這些」有用的答案。 – Thomas

回答

1

變化:

INC_DIRS="$(INTELOCLSDKROOT)include\CL" 

致:

INC_DIRS="$(INTELOCLSDKROOT)include" 

您正在尋找「CL/cl.h」,顯然,這是不會找到一個名爲「CL」內部「包括\ CL」文件夾,因爲你已經給了「瘦肉精」的文件夾中搜索路徑。就目前而言,你基本上要求編譯器找到「\ include \ CL \ CL \ cl.h」,顯然編譯器會失敗,因爲這個文件不存在。

你的意思是簡單地提供「包含」文件夾的路徑 - 約定將完成剩下的工作。

+0

呃,謝謝。這工作。最後我可以開始。任何關於並行編寫可靠,困難的第一個程序的建議?試圖想想可能的事情,但仍然會讓我工作。 – MrWolvwxyz

+0

@MrWolvwxyz困難?您可以嘗試在GPU上編寫路徑追蹤器,smallpt風格。它確實需要相當多的工作,並會引入很多概念。 – Thomas

+0

非常感謝你,就像我說過的,我嘗試過Eclipse,VS和OpenCL studio。浪費的時間只是試圖獲得編譯的方式。cl內核 – MrWolvwxyz