/usr/bin/ld: cannot find -lopencl
Currently trying to compile a simple program given in OpenCL from this website. It will give me the required DeviceInfo
that I need. After simply invoking a make
, I get the error below:
sharan@sharan-X550CC:~/opencl-ex/Ex1$ make
g++ DeviceInfo.cpp -I ../../Cpp_common -lOpenCL -o DeviceInfo
/usr/bin/ld: cannot find -lOpenCL
collect2: error: ld returned 1 exit status
Makefile:23: recipe for target 'DeviceInfo' failed
make: *** [DeviceInfo] Error 1
Now I have installed using the instructions from this website. I still get the error above
What's the fix for this error?
Best Answer
You linker can't find the OpenCL
library.
You should help the linker to find the OpenCL
library.
Similar issue was raised here
There was a solution to create a link for the library to a known lib location
sudo ln -s /usr/lib/x86_64-linux-gnu/libOpenCL.so.1 /usr/lib/libOpenCL.so
Another option:
Assuming that OpenCL
library located in /usr/lib/x86_64-linux-gnu/
you can also add the library folder to the Libraries path.
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib/x86_64-linux-gnu/"
You might need to update the dynamic linker
sudo ldconfig