c++ - OpenCL 的问题(opencl.dll、AMD APP SDK、cl.h)

标签 c++ visual-c++ dll opencl

我正尝试在 Visual Studio 中使用 OpenCL,这就是困扰我的问题:

我有一个 ATI 显卡,所以我下载了 AMD APP SDK,最新版本 3.1,并想开始开发一些示例,但由于没有“cl.h”或 CL 文件夹而卡住了开发工具包。我发现这很奇怪,因为在我看到的所有示例中,include 都是:#include。然后我下载了一个旧版本,我认为它是 2.7.,并且还有带有 cl.h 文件的 CL 文件夹。然后,我还确保在项目属性中设置了所有库依赖项和包含目录,并且当我尝试运行现有的 OpenCL 项目时,没有报告任何错误。然而,当程序启动时它崩溃了,因为它说“OpenCL.dll is missing”。我查看了该文件的 SDK 文件夹,但它不在那里。然后我从互联网上下载了 opencl.dll 并将其复制到调试文件夹中并尝试再次启动该程序,但它再次崩溃并显示消息“Opencl.dll 不是设计为在 Windows 上运行或者它包含错误。”。

我真的迷路了,非常感谢任何帮助!

最佳答案

理想情况下,您不应该显式下载“Opencl.dll”,它应该作为您的一部分 drivers安装。头文件和 Lib 文件可以是 SDK 的一部分,但像“Opencl.dll”这样的运行时文件不一定是 SDK 的一部分。如果 SDK 文件(您用于应用程序的 header 和库)与运行时文件 (Opencl.dll) 之间不兼容,则可能会发生崩溃。

因此,请确保更新与您使用的 SDK 版本相对应的驱动程序。

此外,安装驱动程序时,opencl.dll 通常位于“C:\Windows\System32”和“C:\Windows\SysWOW64”中。通常,这是在运行时使用的

关于c++ - OpenCL 的问题(opencl.dll、AMD APP SDK、cl.h),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34288852/

相关文章:

visual-c++ - 无法将参数 1 从 'ATL::CComPtr<T>' 转换为 'int'

java - JNI,加载2次相同的dll(不同的名称),如何选择使用哪一个?

java - 两全其美 : browser and desktop game?

c++ - 窗口 api 大小和移动控制台

c++ - MSVC 默认内存对齐为 8

c++ - 在本地类中定义 lambda 时,C2326 函数无法访问 'bar'

c++ - 使用函数编译帮助文件

c++ - SDL - 鼠标输入

dll - find_library 选择静态库而不是共享库

c# - 读取mfc资源dll内容