【问题标题】:Compiling OpenCL on Ubuntu在 Ubuntu 上编译 OpenCL
【发布时间】:2010-10-30 16:49:41
【问题描述】:

我的编程经验大约是高中 1 年的 C/C++ 经验,但几个月前我进行了研究并使用 OpenCL 编写了一个简单的程序。使用 g++ 和 --framework 选项,我能够相对轻松地在 Apple 计算机上编译和运行它。现在我在我的 Ubuntu 机器上,我不知道如何编译它。正确的驱动程序已与 ATI 的 Stream SDK 一起下载(我有一个 ATI Radeon HD5870)。任何帮助将不胜感激!

【问题讨论】:

标签: opencl ati


【解决方案1】:

试试

locate libOpenCL.so

如果它位于标准目录之一(很可能是 /usr/lib 或 /usr/local/lib),您需要将“--framework OpenCL”替换为“-lOpenCL”。如果 g++ 找不到 lib,您可以通过添加“-L/path/to/library”告诉 g++ 在特定目录中查找。

我希望我的 Linux 能更有帮助...最好重新下载 ati-stream-sdk,解压后打开终端并“cd /path/to/extracted/files”;在该目录中执行make && sudo make install

  • make你可能从windows知道这个,这个编译,什么都需要编译
  • && 将命令连在一起,后面的命令只有在第一个命令成功的情况下才会执行
  • sudo make install 这会将文件放在预期的位置(sudo 执行具有超级用户权限的命令,您必须输入密码)

希望对您有所帮助。

【讨论】:

  • 我试过这个,但后来我得到错误“致命错误:CL/opencl.h:没有这样的文件或目录”(我的程序中#included的事情之一)。
  • 也许你需要告诉 g++ "CL/" 目录的位置(你用 "dash capital i" 来做): g++ -L/path/to/library -I/path /to/CL main.cpp -lOpenCL
  • 现在我得到:/usr/bin/ld: 找不到 -lOpenCL collect2: ld 返回 1 个退出状态。也许我应该问我是否应该将文件从 SDK 文件夹移动到文件系统的不同部分。抱歉,我是 Linux 新手(最近刚尝试从 Windows 切换)。
  • 哦,如果有人处于类似的位置,编译的最后一行是:“g++ -lOpenCL -L/stream-sdk-2.2/lib/x86_64/ -I/stream-sdk -2.2/include/[文件名].c"
  • 我必须运行g++ -L/opt/AMDAPP/lib/x86_64/ -I/opt/AMDAPP/include [filename.cpp] -lOpenCL
【解决方案2】:

您可能缺少动态链接器配置中的动态库。

搜索图书馆的位置。很可能是 /usr/lib 或 /usr/local/lib。

确保路径位置也配置在以下位置之一:

  • LD_LIBRARY_PATH - 您可以在环境 shell 中设置它,例如 .bashrc
  • /etc/ld.so.conf - 您需要调用 ldconfig 来更新缓存,并且需要 root 访问权限才能更改文件。

【讨论】:

    【解决方案3】:

    原因

    除了@bjoernz,我的系统找不到libOpenCL.so文件

    这是因为缺少正确的文件目录

    在网上搜索后发现libOpenCL.so文件可以由ocl-icd-opencl-dev包提供

    解决方案

    你只需要输入cmd来安装上面提到的包

    sudo apt update
    sudo apt install ocl-icd-opencl-dev
    

    因此,libOpenCL.so 可以在/usr/lib/x86_64-linux-gnu/ 文件夹下找到

    我的系统信息

    • 操作系统:Ubuntu 16.04 LTS
    • GPU:NVIDIA GeForce GTX 660
    • GPU 驱动程序:nvidia-375
    • OpenCL:1.2

    参考:

    [1]How to install libOpenCL.so on ubuntu

    [2]How to set up OpenCL in Linux

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-12
      相关资源
      最近更新 更多