web-dev-qa-db-fra.com

Xcode donne Apple erreur de l'éditeur de liens Mach-O

Je viens de compiler un projet et Xcode renvoie ces deux erreurs qui ne semblent pas être la faute de mon code. Comment les réparer?

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)
23
kuranes

Apprendre à un homme (ou à une femme) à pêcher:

Généralement, l'erreur de l'éditeur de liens Mach-O signifie que vous n'avez pas inclus de fichier d'en-tête pour une fonction que vous utilisez dans votre code.

Le moyen le plus simple est de copier cet appel de fonction ou de méthode et de le coller dans la recherche rapide Xcode en utilisant shift + commande + O. Cela va rechercher tous les frameworks (et les fichiers d'en-tête), trouver cette fonction ou cette méthode et vous montrer son emplacement (l'en-tête dans ce cas):

Dans ce cas, cet appel appartient au framework Accelerate donc en haut de votre fichier, entrez:

#import <Accelerate/Accelerate.h>

Lorsque vous effectuez une recherche rapide, vous devrez peut-être vous débarrasser du trait de soulignement principal. En d'autres termes, recherchez vImageBoxConvolve_ARGB8888

J'espère que cela t'aides

40
Khaled Barazi

Google est votre ami: quelqu'un d'autre a corrigé cela en ajoutant le framework Accelerate à son projet (et cela ressemble à une erreur de framework).

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

Assurez-vous que le framework QuartzCore est également inclus, car cela est également requis par cette bibliothèque.

11
Xono

Apparemment, vImageBoxConvolve_ARGB8888 () n'est pas défini. Vérifiez si le framework Accelerate est correctement inclus dans le projet.

1
Rajan Twanabashu