我試圖讓我的問題解決了幾個小時,但我沒有找到任何有用的提示。希望你們能幫助我了:鏈接問題(英特爾SDK)OpenCL和Code :: Blocks
一些有用的數據:
操作系統:Windows 8普通版64位
庫:英特爾OpenCL的SDK
編譯:MinGW的(-GCC)(最新版本)
IDE:代碼: :塊(最新版本)
最小不工作代碼:
#include <stdlib.h>
#include <CL/cl.h>
int main(void)
{
cl_uint available;
cl_platform_id* platforms = (cl_platform_id*)malloc(sizeof(cl_platform_id));
cl_int result = clGetPlatformIDs(1, platforms, &available);
free(platforms);
if(result == CL_SUCCESS)
return 0;
return -1;
}
代碼:: Blocks的全局編譯設置:
鏈接器設置:添加到英特爾OpenCL.lib([...] \ Intel \ OpenCL SDK \ 3.0 \ lib \ x64 \ OpenCL.lib)的路徑(嘗試使用其他選項以及-OpenCL)
Search-編譯器目錄:英特爾OpenCL-SDK的路徑包括目錄([...] \ Intel \ OpenCL SDK \ 3.0 \ include)
鏈接器的搜索目錄:英特爾OpenCL-Lib目錄的路徑([...]英特爾\ OpenCL的SDK \ 3.0 \ LIB \ x64)的
內建日誌:
mingw32-g++.exe -L"[...]\Intel\OpenCL SDK\3.0\lib\x64" -o bin\Release\openCLTest.exe obj\Release\main.o -s "[...]\Intel\OpenCL SDK\3.0\lib\x64\OpenCL.lib"
obj\Release\main.o:main.c:(.text.startup+0x39): undefined reference to `[email protected]'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
1 errors, 0 warnings (0 minutes, 0 seconds)
我不知道他爲什麼沒有正確鏈接。 我修改了文本以縮短路徑,通常它會是「C:\ Program Files(x86)...」。
希望你們能幫助我!這真是令人沮喪! :(
你需要更多的信息
編輯:
好了...一小時,我解決我自己的問題
希望這個提示可以幫助一些其他的脂肪酶:
我不得不額外鏈接對X86庫(似乎有些功能沒有在X64中實現)
相關知識 - - '''
請添加您的解決方案作爲問題的答案。您稍後可以接受它,這標誌着問題已經解決。解決標題不適用於堆棧溢出。 – talonmies 2013-03-29 07:39:56
值得注意的是,它沒有工作的實際原因是因爲您使用的是32位MinGW,所以64位庫無法讀取。所有函數都在x64中實現,你只需要一個64位編譯器來使用它們;) – Thomas 2013-03-29 07:51:36