PyOpenCL не может найти включаемые файлы при установке через «easy_install». - PullRequest
2 голосов
/ 15 июня 2011

, поэтому я скачал библиотеки nVidia CUDA и поместил их в папку по умолчанию:

/usr/local/cuda

Когда я иду, чтобы запустить это:

sudo easy_install pyopencl

Это дает мне эту ошибку:

In file included from src/wrapper/wrap_cl.cpp:1:0:
src/wrapper/wrap_cl.hpp:20:19: fatal error: CL/cl.h: No such file or directory

Однако я могу убедиться, что указанный выше файл действительно существует вместе с несколькими другими заголовочными файлами:

/usr/local/cuda/include/CL/cl.h

Я даже пытался установить LD_LIBRATH_PATH:

export LD_LIBRARY_PATH=/usr/local/cuda/lib

Но, похоже, это не имеет никакого эффекта.

Любая помощь приветствуется!

1 Ответ

3 голосов
/ 15 июня 2011

Путь include вашего компилятора, вероятно, не включает / usr / local / cuda / include /. Переменная окружения LD_LIBRARY_PATH фактически указывает компилятору / среде выполнения, где искать разделяемые объектные файлы. Есть два способа (которые знают), чтобы исправить это:

1) Большинство компиляторов принимают флаг, который определяет дополнение к пути включения; для gcc это -I, так что

gcc -I /usr/local/cuda/include [code files, more options, etc]

сообщит gcc, что нужно искать include в / usr / local / cuda / include, в дополнение к системному пути include

2) Свяжите заголовочные файлы OpenCL с вашим системным включаемым путем (обычно / usr / include /). Что-то вроде:

# ln -s /usr/local/cuda/include/CL CL

, выполняемый из каталога / usr / include, должен работать.

Если после устранения этой проблемы возникла проблема, подобная следующей:

/usr/bin/ld: cannot find -lOpenCL

тогда вы можете посмотреть на этот вопрос .

...