我在開始使用Opencl時非常麻煩,主要是因爲我的編譯器拒絕識別相關庫的存在。我從their website下載了最新版本的AMD SDK,並進行了完整安裝。我想通過this blog來學習,我的大部分信息都是從那裏得到的。麻煩連接AMD SDK opencl
首先,我檢查了我的系統路徑變量,它包含了amd api的64位bin文件夾。
我開始嘗試使用明顯是標準選項-lOpenCl
的make文件進行編譯,但它只是告訴我它找不到-lOpenCl或CL \ cl.hpp。於是我添加了-I %AMDAPPSDKROOT%\include
,這固定了我的問題的一半,但仍然(三個小時並計數)編譯器抱怨未定義的引用,同時拒絕識別任何相關的庫。
g++ -std=c++1y -g -o .\bin\test.exe .\quicktest.cpp -I .\Libraries -I .\Scource -I "%AMDAPPSDKROOT%\include" -L "%AMDAPPSDKROOT%\bin\x86_64" -L "%AMDAPPSDKROOT%\lib\x86_64" -LlibOpenCl.a
是我現在正在編譯的命令,它已經消除了所有問題,但未定義的函數參考如clGetPlatform
和clReleaseCommandQueue
。我使用與OpenCl blog中的第一個示例完全相同的代碼,除了我還包含vector
。
我已經嘗試了不同的組合加載,並從互聯網的建議,但沒有任何工作到目前爲止。有什麼我失蹤/不明白?我真的很想繼續學習,並非常感謝任何幫助。老實說,我不確切知道哪些信息會有幫助,但是如果這有助於我使用Geforce GT 635運行64位Windows 7計算機,並且我已經安裝了CUDA和AMD SDK。
我可能有一個解決方案,我要休息一下,雖然 – user4578093