23

プロジェクトをコンパイルしたところ、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)
4

3 に答える 3

40

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

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

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

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

#import <Accelerate/Accelerate.h>

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

お役に立てれば

于 2013-07-02T00:23:32.007 に答える
1

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

于 2015-09-07T06:35:23.500 に答える