Atualmente, está tentando compilar um programa simples fornecido no OpenCL neste site. Isso me dará o necessário DeviceInfo
que eu preciso. Depois de simplesmente chamar a make
, recebo o erro abaixo:
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
Agora eu instalei usando as instruções deste site. No entanto, ainda recebo o erro acima.
Como posso resolver esse erro?
Como já declarado por Yaron, o vinculador não sabe onde encontrar a biblioteca OpenCL, ou seja, não está em nenhum dos locais que a procura.
Em vez de movê-lo para um desses lugares (por exemplo
/usr/lib
), sugiro informar ao vinculador onde procurar por meio da-L
bandeira. O comando seria então lido (observe o-L/usr/lib/x86_64-linux-gnu
)Se você estiver usando um manuscrito,
Makefile
poderá simplesmente modificar o comando compilador / vinculador como este. Caso contrário, você terá que tocar no seu sistema de compilação para incluí-lo.fonte
LDFLAGS
por exemplomake 'LDFLAGS=-L/usr/lib/x86_64-linux-gnu'
LDFLAGS=$LDFLAGS:/usr/lib/x86_64-linux-gnu/
para preservar as configurações anteriores