web-dev-qa-db-ja.com

XcodeはApple Mach-Oリンカーエラー

プロジェクトをコンパイルしたばかりで、Xcodeはこれら2つのエラーを返しますが、これは私のコードのせいではないようです。どうすれば修正できますか?

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

男性(または女性)に釣り方を教える:

通常、Mach-Oリンカーエラーは、コードで使用している関数のヘッダーファイルが含まれていないことを意味します。

最も簡単な方法は、関数またはメソッド呼び出しをコピーして、shift + command + Oを使用してXcodeクイック検索に貼り付けることです。これにより、すべてのフレームワーク(およびヘッダーファイル)が検索され、その関数またはメソッドの呼び出しが検索され、その場所(この場合はヘッダー)が表示されます。

この場合、この呼び出しはAccelerateフレームワークに属しているため、ファイルの上に次のように入力します。

#import <Accelerate/Accelerate.h>

クイック検索を行う場合、先頭のアンダースコアを削除する必要がある場合があります。つまり、vImageBoxConvolve_ARGB8888を検索します

お役に立てれば

40
Khaled Barazi

Googleはあなたの友達です。他の誰かがAccelerateフレームワークをプロジェクトに追加することでこれを修正しました(これはフレームワークエラーのように見えます)。

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

また、QuartzCoreフレームワークも含まれていることを確認してください。これもそのライブラリに必要です。

11
Xono

どうやらvImageBoxConvolve_ARGB8888()は定義されていません。 Accelerateフレームワークがプロジェクトに適切に含まれているかどうかを確認してください。

1