ios objective-c linker-errors mach-o undefined-symbol

ios - Xcode da error del enlazador de Apple Mach-O



objective-c linker-errors (3)

Acabo de compilar un proyecto y Xcode devuelve estos dos errores que no parecen ser culpa de mi código. ¿Cómo los arreglo?

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)


Aparentemente vImageBoxConvolve_ARGB8888 () no está definido. Vea si el marco Accelerate está correctamente incluido en el proyecto.


Enseñar a un hombre (o mujer) a pescar:

Por lo general, el error de vinculador de Mach-O significa que no ha incluido un archivo de encabezado para una función que está utilizando en su código.

La forma más sencilla es copiar esa función o método, llamar y pegar en la búsqueda rápida de Xcode usando shift + command + O. Esto buscará todos los marcos (y archivos de encabezado), buscará esa función o método y le mostrará su ubicación (el encabezado en este caso):

En este caso, esta llamada pertenece al marco Accelerate, por lo que encima de su archivo, ingrese:

#import <Accelerate/Accelerate.h>

Cuando realice una búsqueda rápida, es posible que deba deshacerse del guión bajo. En otras palabras, busque vImageBoxConvolve_ARGB8888

Espero que esto ayude


Google es su amigo: alguien más lo solucionó agregando el marco Accelerate a su proyecto (y esto parece un error de marco).

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

Asegúrese de que también tenga incluido el marco QuartzCore, ya que esa biblioteca también lo requiere.