【发布时间】: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,但没有帮助。
【问题讨论】:
-
我遇到了同样的问题,我通过在我的 Mac 中添加现有的 OpenCL 框架解决了这个问题。我提到了思考链接 - stackoverflow.com/questions/3352664/…
-
我想知道为什么苹果不能让它成为-lopengl下的一个库