如何让gcc中的链接器识别OpenCL库函数?
我正在尝试使用 OpenCL。不过,我确信这个问题并不是 OpenCL 特有的。
我的主文件顶部如下所示:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <OpenCL/opencl.h>
// some code
cl_device_id device_id; //declaring a device id gives no errors
int err = clGetDeviceIDs(NULL, CL_DEVICE_TYPE_GPU, 1, &device_id, NULL);
//the above API call does give an error.
我正在 Snow Leopard 上执行此操作。我可以使用 XCode 构建并运行 Apple 的示例。我还可以通过运行 make 来编译并运行 NVIDIA 的示例代码。
如何在不使用 XCODE 的情况下正确编译我的代码?
I'm getting my feet wet with OpenCL. I'm sure this problem is not specific to OpenCL, however.
the top of my main file looks like:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <OpenCL/opencl.h>
// some code
cl_device_id device_id; //declaring a device id gives no errors
int err = clGetDeviceIDs(NULL, CL_DEVICE_TYPE_GPU, 1, &device_id, NULL);
//the above API call does give an error.
I'm doing this on Snow Leopard. I can build and run Apple's examples using XCode. I can also compile and run NVIDIA's sample code by running make.
How do I properly compile my code without using XCODE?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
两者都
有效。有人想在非 OSX 环境中尝试一下吗?
and
both work. Anyone want to try this on a non-OSX environment?
我使用 Eclipse CDT 构建了一些简单的示例。
我还需要在 XCode 之外将
#include
更改为#include
,并添加-I / System/Library/Frameworks/OpenCL.framework/Headers
(或类似的东西)。I built some simple examples using Eclipse CDT.
I needed to also change
#include <OpenCL/opencl.h>
to#include <opencl.h>
outside of XCode, and add-I /System/Library/Frameworks/OpenCL.framework/Headers
(or something similar).