【问题标题】:why are my openCL builds failing on OS X?为什么我的 openCL 构建在 OS X 上失败?
【发布时间】:2011-12-01 14:34:18
【问题描述】:

我在 OS X 10.7 Lion 上并安装了所有开发工具,但是当我在一个相对简单的程序上运行 GCC 时,只需直接 C 并调用诸如 clCreateProgramFromSource 之类的 openCL 函数,我得到以下错误列表:

Undefined symbols for architecture x86_64:
  "_CreateContext", referenced from:
    _build_kernel in ccFuZYMI.o
  "_GetDevices", referenced from:
    _build_kernel in ccFuZYMI.o
  "_CreateCommandQueue", referenced from:
    _build_kernel in ccFuZYMI.o
  "_clCreateProgramWithSource", referenced from:
    _build_kernel in ccFuZYMI.o
  "_clBuildProgram", referenced from:
    _build_kernel in ccFuZYMI.o
  "_clCreateKernel", referenced from:
    _build_kernel in ccFuZYMI.o
  "_clCreateBuffer", referenced from:
    _build_kernel in ccFuZYMI.o
  "_clEnqueueWriteBuffer", referenced from:
    _sync_run_kernel in ccFuZYMI.o
  "_clSetKernelArg", referenced from:
    _sync_run_kernel in ccFuZYMI.o
  "_clEnqueueNDRangeKernel", referenced from:
    _sync_run_kernel in ccFuZYMI.o
  "_clEnqueueReadBuffer", referenced from:
    _sync_run_kernel in ccFuZYMI.o
  "_clReleaseContext", referenced from:
    _destroy_kernel in ccFuZYMI.o
  "_clReleaseCommandQueue", referenced from:
    _destroy_kernel in ccFuZYMI.o
  "_clReleaseMemObject", referenced from:
    _destroy_kernel in ccFuZYMI.o
  "_clReleaseProgram", referenced from:
    _destroy_kernel in ccFuZYMI.o
  "_clReleaseKernel", referenced from:
    _destroy_kernel in ccFuZYMI.o
ld: symbol(s) not found for architecture x86_64

还有一些其他警告,但在计算阶段没有其他错误。这是(如果不清楚)链接器错误。在创建目标文件时,它似乎能够从头文件中看到定义,因为它给了我关于不兼容指针类型的警告。

我尝试粘贴到一个 xcode 项目中,但我得到完全相同的错误。我试过only other OS X Lion / OpenCL result's solution,但没有帮助。

【问题讨论】:

标签: c macos opencl


【解决方案1】:

在我看来,您没有链接到 OpenCL 库。您可以发布您尝试使用的链接命令吗?如果没有这些信息,只需从臀部射击:添加-framework OpenCL

【讨论】:

  • 非常感谢,您也说得对!唉,保罗 R 得到了正确的答案,因为他(非常稍微)更快。 :)
【解决方案2】:

看起来您缺少 OpenCL 框架 - 试试:

$ gcc -Wall foo.c -framework OpenCL -o foo

【讨论】:

  • 确实,这就是问题所在。愚蠢!我仍然缺少一些符号,但看起来它们是仅存在于 NVidia 在线示例中的快捷方式。谢谢!
猜你喜欢
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多