8

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

4

3 回答 3

8

尝试

locate libOpenCL.so

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

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

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

希望有帮助。

于 2010-10-30T20:09:36.350 回答
0

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

搜索图书馆在哪里。很可能是 /usr/lib 或 /usr/local/lib。

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

  • LD_LIBRARY_PATH - 你可以在你的环境 shell 中设置它,比如 .bashrc
  • /etc/ld.so.conf - 您需要调用 ldconfig 来更新缓存,并且它需要 root 访问权限才能更改文件。
于 2010-10-30T22:05:58.043 回答
0

原因

除了@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
  • 显卡:NVIDIA GeForce GTX 660
  • GPU驱动程序:nvidia-375
  • 开放式:1.2

参考:

[1]如何在ubuntu上安装libOpenCL.so

[2]如何在 Linux 中设置 OpenCL

于 2017-09-04T08:09:40.727 回答