【发布时间】:2010-10-30 16:49:41
【问题描述】:
我的编程经验大约是高中 1 年的 C/C++ 经验,但几个月前我进行了研究并使用 OpenCL 编写了一个简单的程序。使用 g++ 和 --framework 选项,我能够相对轻松地在 Apple 计算机上编译和运行它。现在我在我的 Ubuntu 机器上,我不知道如何编译它。正确的驱动程序已与 ATI 的 Stream SDK 一起下载(我有一个 ATI Radeon HD5870)。任何帮助将不胜感激!
【问题讨论】:
我的编程经验大约是高中 1 年的 C/C++ 经验,但几个月前我进行了研究并使用 OpenCL 编写了一个简单的程序。使用 g++ 和 --framework 选项,我能够相对轻松地在 Apple 计算机上编译和运行它。现在我在我的 Ubuntu 机器上,我不知道如何编译它。正确的驱动程序已与 ATI 的 Stream SDK 一起下载(我有一个 ATI Radeon HD5870)。任何帮助将不胜感激!
【问题讨论】:
试试
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 执行具有超级用户权限的命令,您必须输入密码)希望对您有所帮助。
【讨论】:
g++ -L/opt/AMDAPP/lib/x86_64/ -I/opt/AMDAPP/include [filename.cpp] -lOpenCL
您可能缺少动态链接器配置中的动态库。
搜索图书馆的位置。很可能是 /usr/lib 或 /usr/local/lib。
确保路径位置也配置在以下位置之一:
【讨论】:
除了@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/ 文件夹下找到
【讨论】: