Xcode 6 - 无法构建模块“Accelerate”

4
我正在使用Xcode 6 beta 2 (6A216f),一切都很好,但是当我构建到除5s以外的任何设备时,我会收到111个错误。 问题出在我使用了FXBlurView,它导入了Accelerate框架。
我搜索了很多,但没有找到解决方案。这是错误信息:太长了所以我上传到pastebin。 PS:我不知道你需要哪部分内容,所以我上传了所有内容。
另外,如果我从Bridging-Header中删除#import "FXBlurView.h",就不会出现错误。
编辑:所以我“解决”了我的问题。错误显示编译器不知道vFloat是什么,所以我检查了vecLibTypes.h并发现vFloat在这段代码中被定义:
#elif defined(__i386__) || defined(__x86_64__)
#ifdef __SSE__
#if defined(__GNUC__)
#include <xmmintrin.h>
typedef float                   vFloat          __attribute__ ((__vector_size__ (16)));
#else /* not __GNUC__ */
#include <xmmintrin.h>
typedef __m128                          vFloat;
#endif /* __GNUC__ */
#endif  /* defined(__SSE__) */

如果我删除第一个 #elif,就不会出现错误。

编辑2:@Nick 找到了正确的解决方案。


你必须在桥接头文件中,在FXBlurView的导入之前导入Accelerate框架。请参考https://dev59.com/IGAf5IYBdhLWcg3wylMd中的答案。 - Jack
我把我的桥接文件改成了: #import <Accelerate/Accelerate.h> #import <UIKit/UIKit.h> #import <Availability.h> #import "FXBlurView.h"但它仍然不起作用。 - Lorenzo Piccoli Módolo
我认为vFload是在Accelerate框架内部的vecLibTypes.h中定义的。 - Lorenzo Piccoli Módolo
我在使用Xcode6构建自己的iOS框架时,遇到了与加速框架链接类似的问题,其中一些符号没有正确链接(具体来说是vImageBoxConvolve_ARGB8888)。 - Pierluigi Cifani
1
这个问题似乎在Xcode 6 Beta 3中得到了解决。终于 :) - Kai
显示剩余3条评论
1个回答

3
如果您将“Accelerate”导入语句移动到实现文件中,则可以正常工作。我分叉了该项目以进行更改,并已提交拉取请求。

https://github.com/nrbrook/fxblurview


我在Beta 3中仍然遇到了这个问题,而您的解决方案为我解决了它。谢谢。 - Roderic Campbell
回到Xcode 6β5,似乎这个问题已经不再存在了。 - Roderic Campbell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接