gpt4 book ai didi

c++ - 链接 AMD SDK opencl 时出现问题

转载 作者:行者123 更新时间:2023-11-28 00:08:07 24 4
gpt4 key购买 nike

我在 Opencl 中迈出第一步时遇到了严重的问题,主要是因为我的编译器拒绝识别相关库的存在。我从 their website 下载了最新版本的 AMD SDK并进行了完整安装。我想通过 this blog 学习,我的很多信息都来自那里。

首先,我检查了我的系统路径变量,它包含 amd api 的 64 位 bin 文件夹。

我开始尝试使用带有明显标准选项 -lOpenCl 的 make 文件进行编译,但它只是告诉我它找不到 -lOpenCl 或 CL\cl.hpp。因此,我随后添加了 -I %AMDAPPSDKROOT%\include ,它解决了我一半的问题,但仍然(三个小时并且还在增加)编译器提示 undefined reference ,同时拒绝识别任何相关库。

g++ -std=c++1y -g -o .\bin\test.exe .\quicktest.cpp -I .\Libraries -I .\Scource -I "%AMDAPPSDKROOT%\include"- L "%AMDAPPSDKROOT%\bin\x86_64"-L "%AMDAPPSDKROOT%\lib\x86_64"-LlibOpenCl.a 是我现在正在编译的命令,它已经解决了所有问题,但 undefined reference clGetPlatformclReleaseCommandQueue 等功能。我使用的代码与 OpenCl blog 中的第一个示例完全相同除了我还包含了 vector

我已经尝试了很多不同的组合,并尝试了来自互联网的建议,但到目前为止没有任何效果。有什么我想念/不明白的吗?我真的很想继续学习,非常感谢任何帮助。

老实说,我不知道哪些信息会有帮助,但如果有帮助,我正在运行一台配备 Geforce GT 635 的 64 位 Windows 7 计算机,并且我同时安装了 CUDA 和 AMD SDK。

最佳答案

查看您的编译方式,似乎 -LlibOpenCl.a 是错误的。 -L 用于库目录,而 -l 用于单个库。要使用 -l ,您必须删除库名称前面的 lib 并删除点后面的内容。在您的情况下,它应该是您在开头所说的 -lOpenCl。

libOpenCl 是否在这两个目录之一中? :%AMDAPPSDKROOT%\bin\x86_64%AMDAPPSDKROOT%\lib\x86_64

我想第一个是二进制文件,第二个是库,所以第一个应该没用。您在链接期间获得 undefined reference ,因为您仍然没有链接库。

关于c++ - 链接 AMD SDK opencl 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34397164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com