“não é possível encontrar o erro -lOpenCL” ao criar o Cuda SDK

4

Eu tenho um Notebook ASUS com nVidia gt 520m e pensei em experimentar algumas programações OpenCL (primeira vez) no Ubuntu 11.10. Eu instalei o pacote nvidia-current-dev. Assim, eu encontrei libOpenCL.so e tal em / usr / lib / nvidia-current / folder:

$razvan@...:~$ locate libOpenCL.so
/usr/lib/nvidia-current/libOpenCL.so
/usr/lib/nvidia-current/libOpenCL.so.1
/usr/lib/nvidia-current/libOpenCL.so.1.0
/usr/lib/nvidia-current/libOpenCL.so.1.0.0
/usr/lib32/nvidia-current/libOpenCL.so
/usr/lib32/nvidia-current/libOpenCL.so.1
/usr/lib32/nvidia-current/libOpenCL.so.1.0
/usr/lib32/nvidia-current/libOpenCL.so.1.0.0

Eu então instalei o CUDA Toolkit para Ubuntu 10.10 do site da nVidia e também o NVIDIA GPU SDK (em / opt / gpu_sdk).

Quando vou para / opt / gpu_sdk / OpenCL e tento o comando make, obtenho:

razvan@...:/opt/gpu_sdk/OpenCL$ make
make[1]: Entering directory '/opt/gpu_sdk/OpenCL/common'
a - obj/release/oclUtils.cpp.o
make[1]: Leaving directory '/opt/gpu_sdk/OpenCL/common'
make[1]: Entering directory '/opt/gpu_sdk/shared'
make[1]: Leaving directory '/opt/gpu_sdk/shared'
make -C src/oclConvolutionSeparable/
make[1]: Entering directory '/opt/gpu_sdk/OpenCL/src/oclConvolutionSeparable'
/usr/bin/ld: cannot find -lOpenCL
collect2: ld returned 1 exit status
make[1]: *** [../../..//OpenCL//bin//linux/release/oclConvolutionSeparable] Error 1
make[1]: Leaving directory '/opt/gpu_sdk/OpenCL/src/oclConvolutionSeparable'
make: *** [src/oclConvolutionSeparable/Makefile.ph_build] Error 2

Afeteri a instalação do pacote nvidia-current-dev Eu fui ao /etc/ld.so.conf.d/ e fiz o nvidia-current.conf onde eu especifiquei / usr / lib / nvidia-current e / usr / lib32 / nvidia-current. Então eu usei o ldconfig para armazenar os novos locais em cache.

Escusado será dizer que não funcionou. Eu também adicionei o / usr / lib / nvidia-current e / usr / lib32 / nvidia-current à variável de ambiente LD_LIBRARY_PATH na esperança de trabalhar ... ele não funcionou.

    
por razvanc 08.11.2011 / 15:51

2 respostas

3

Não é possível definir LD_LIBRARY_PATH relacionado especificamente a / usr / bin / ld.

Deveria ter definido LIBRARY_PATH, que é a variável de ambiente correta para o compilador gnu (usado aqui).

Qualquer que seja a conexão entre LD_LIBRARY_PATH e LIBRARY_PATH (ou, neste caso, ld e gcc e por que o gcc não usa o executável ld ...

    
por Ringtail 06.03.2012 / 01:34
2

Procure aqui uma boa explicação sobre LIBRARY_PATH e LD_LIBRARY_PATH : clique aqui

LIBRARY_PATH é verificado ao compilar, LD_LIBRARY_PATH na execução do programa.

    
por Stevo 03.11.2012 / 22:08