python - 通过 "easy_install."安装时 PyOpenCL 找不到包含文件

标签 python cuda opencl easy-install

所以我下载了 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/

相关文章:

c - 简单的 OpenCL 随机生成器

python - 获取 Python 函数以根据参数数量干净地返回标量或列表

python - guppy 报告的内存使用情况与 ps 命令不同

c++ - "modifier is not allowed on a destructor"在VS2013中用nvcc编译时出错

cudaMemcpy 和阻塞

opencl - 我需要帮助理解 OpenCL 缓冲区中的数据对齐

optimization - 在 OpenCL 中比较 uchar 数组的最快方法

python - 使用 gensim 库的 doc2vec 的相似度结果不准确

python - 比较字典并仅显示 Python 中的差异?

linux - 如何使用CUDA_FORCE_PTX_JIT?