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