Ich habe gerade ein Projekt kompiliert und Xcode gibt diese beiden Fehler zurück, die nicht an meinem Code zu liegen scheinen. Wie behebe ich sie?
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)
Einem Mann (oder einer Frau) beibringen, wie man fischt:
Normalerweise bedeutet Mach-O Linker Error, dass Sie keine Header-Datei für eine Funktion in Ihren Code aufgenommen haben.
Am einfachsten ist es, diese Funktion oder diesen Methodenaufruf zu kopieren und mit Umschalt + Befehl + O in die Xcode-Schnellsuche einzufügen. Dadurch werden alle Frameworks (und Header-Dateien) durchsucht, der Funktions- oder Methodenaufruf gefunden und der Speicherort (in diesem Fall der Header) angezeigt:
In diesem Fall gehört dieser Aufruf zum Accelerate-Framework. Geben Sie also oben in Ihre Datei Folgendes ein:
#import <Accelerate/Accelerate.h>
Bei der Schnellsuche müssen Sie möglicherweise den führenden Unterstrich entfernen. Mit anderen Worten, suchen Sie nach vImageBoxConvolve_ARGB8888
Hoffe das hilft
Google ist dein Freund: Jemand anderes hat dies behoben, indem es das Accelerate-Framework zu seinem Projekt hinzugefügt hat (und dies scheint ein Framework-Fehler zu sein).
https://github.com/rnystrom/RNBlurModalView/issues/5
Stellen Sie sicher, dass auch das QuartzCore-Framework enthalten ist, da dieses auch von dieser Bibliothek benötigt wird.
Anscheinend ist vImageBoxConvolve_ARGB8888 () nicht definiert. Überprüfen Sie, ob das Accelerate-Framework ordnungsgemäß im Projekt enthalten ist.