在Ubuntu上编译OpenCL

时间:2010-10-30 16:49:42

标签: opencl ati

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

3 个答案:

答案 0 :(得分:8)

尝试

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执行具有超级用户权限的命令,您必须输入密码)

希望有所帮助。

答案 1 :(得分:0)

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

搜索库的位置。最有可能是/ usr / lib,或/ usr / local / lib。

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

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

答案 2 :(得分: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
  • 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