У меня есть Ноутбук ASUS с Nvidia gt 520 м и мыслью о попытке некоторого программирования OpenCL (в первый раз) на Ubuntu 11.10. Я установил nvidia-current-dev пакет. Таким образом я нашел libOpenCL.so и такой в/usr/lib/nvidia-current/папке:
$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
Я затем установил Инструментарий CUDA для Ubuntu 10.10 с веб-сайта Nvidia и также GPU NVIDIA SDK (в/opt/gpu_sdk).
Когда я перехожу к/opt/gpu_sdk/OpenCL и пробую сделать команду, я добираюсь:
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
Afeter, устанавливающий nvidia-current-dev пакет, я перешел к/etc/ld.so.conf.d/и сделал nvidia-current.conf, где я указал/usr/lib/nvidia-current и/usr/lib32/nvidia-current. Затем я использовал ldconfig для кэширования новых местоположений.
Само собой разумеется, это не работало. Я также добавил/usr/lib/nvidia-current, и/usr/lib32/nvidia-current к переменной среды LD_LIBRARY_PATH в надежде на работу... это не работало.
Невозможно установить LD_LIBRARY_PATH, который конкретно связан с / usr / bin / ld.
Должно быть установлено значение LIBRARY_PATH, которое является правильной переменной среды для компилятора gnu (используется здесь).
Какой бы ни была связь между LD_LIBRARY_PATH и LIBRARY_PATH (или в этом случае ld и gcc и почему gcc не использует исполняемый файл ld ..
Ищите здесь хорошее объяснение LIBRARY_PATH
и LD_LIBRARY_PATH
: щелкните здесь
LIBRARY_PATH
проверяется при компиляции, LD_LIBRARY_PATH
при выполнении программы.