Xcode给苹果Mach-O链接器错误

我只是编译一个项目,Xcode返回这两个似乎不是我的代码错误的错误。 我如何解决它们?

Undefined symbols for architecture i386: "_vImageBoxConvolve_ARGB8888", referenced from: -[UIImage(Blur) boxblurImageWithBlur:] in UIImage+Blur.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation) 

教一个男人(或女人)如何钓鱼:

通常,Mach-O链接器错误意味着你没有在代码中使用你正在使用的函数的头文件。

最简单的方法是使用shift + command + O复制该函数或方法调用并粘贴到Xcode快速search中。 这将search所有框架(和头文件),find该函数或方法调用,并显示它的位置(在这种情况下的头):

在这种情况下,这个调用属于Accelerate框架,所以在你的文件顶部,input:

 #import <Accelerate/Accelerate.h> 

在进行快速search时,可能需要删除前导下划线。 换句话说,searchvImageBoxConvolve_ARGB8888

希望这可以帮助

Google是你的朋友:别人通过将Accelerate框架添加到他们的项目来解决这个问题(这看起来像是框架错误)。

https://github.com/rnystrom/RNBlurModalView/issues/5

确保你也包含了QuartzCore框架,因为那个库也需要QuartzCore框架。

显然vImageBoxConvolve_ARGB8888()没有定义。 查看Accelerate框架是否正确包含在项目中。