Xcode дает ошибку компоновщика Apple 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)
Ответы
Ответ 1
Преподавание человека (или женщин), как ловить рыбу:
Обычно Маха-О-Linker Error означает, что вы не включили заголовочный файл для функции, которую вы используете в своем коде.
Самый простой способ - скопировать вызов этой функции или метода и вставить в быстрый поиск Xcode с помощью команды shift + + O. Это будет искать все фреймворки (и файлы заголовков), найти вызов функции или метода и показать его местоположение (заголовок в этом случае):
В этом случае этот вызов принадлежит структуре Accelerate, поэтому поверх вашего файла введите:
#import <Accelerate/Accelerate.h>
При выполнении быстрого поиска вам, возможно, придется избавиться от подчеркивания. Другими словами, поиск vImageBoxConvolve_ARGB8888
Надеюсь, что это поможет
Ответ 2
Google - ваш друг: кто-то еще исправил это, добавив фреймворк Accelerate в свой проект (и это выглядит как ошибка структуры).
https://github.com/rnystrom/RNBlurModalView/issues/5
Убедитесь, что вы также включили фреймворк QuartzCore, который также требуется этой библиотеке.
Ответ 3
Очевидно, vImageBoxConvolve_ARGB8888() не определен. Посмотрите, правильно ли включена инфраструктура Accelerate в проекте.