【发布时间】:2014-04-27 21:58:11
【问题描述】:
在 iOS 中,我有一个依赖于 vDSP_vgathr 的函数调用,它是 Apple 的 Accelerate framework 的成员:
int pix = image.size.height * image.size.width;
float * array = (float *)malloc(sizeof(float) * pix * 4);
float * colorPlane = (float *)malloc(sizeof(float) * pix);
float * y_r = (float *)malloc(sizeof(float) * pix)
int * malloc(sizeof(int) * pix)
vDSP_vgathr(colorPlane, (const vDSP_Length *)idx, 1, y_r, 1, (int)(rate*pix));
我看到an SO question 与我得到的错误、EXC_I386_GPFLT、64 位系统和非规范指针有关。我见过的solution(和another one)建议包括tgmath.h,但是当使用(成功编译)时,它什么也不做,我仍然得到EXC_I386_GPFLT。
我尝试了许多其他潜在的解决方案,包括对各种对象和不同的函数调用进行类型转换。我怎样才能使这个函数调用在 64 位架构下工作?
【问题讨论】:
-
tgmath绝对不会与您遇到的问题有任何关系。您的代码示例中没有足够的信息来说明发生了什么;你能提供一个实际的可编译版本的代码来演示这个问题吗?
标签: ios floating-point 32bit-64bit accelerate-framework vdsp