所以我下载了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
但它似乎没有任何效果。
感谢任何帮助!
答案 0 :(得分:3)
您的编译器的include路径可能不包含/ usr / local / cuda / include /。实际上,环境变量LD_LIBRARY_PATH告诉编译器/运行时环境在哪里可以找到共享对象文件。有两种方法(知道)可以解决这个问题:
1)大多数编译器接受一个标志,指定包含路径的附加内容;对于gcc,它是-I,所以
gcc -I /usr/local/cuda/include [code files, more options, etc]
将告诉gcc在/ usr / local / cuda / include中寻找包含,除了系统包含路径
2)将OpenCL头文件链接到系统包含路径(通常是/ usr / include /)。 类似的东西:
# ln -s /usr/local/cuda/include/CL CL
在目录/ usr / include中执行应该可以工作。
如果解决此问题后,您遇到以下问题:
/usr/bin/ld: cannot find -lOpenCL
然后你可能想看看this question。