所以我下载了 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
但是好像没有什么效果。
感谢任何帮助!
最佳答案
您的编译器的包含路径可能不包含/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 .
关于python - 通过 "easy_install."安装时 PyOpenCL 找不到包含文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6350290/