2013-07-01 11 views
23

私はちょうどプロジェクトをコンパイルしましたが、Xcodeはこれらの2つのエラーを返します。これは私のコードの問題ではないようです。どうすれば修正できますか?XcodeはApple Mach-Oリンカエラーを返します

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

関連コードを表示するように気をつけますか? –

+0

問題は 'UIImage + Blur.m'ファイルにあります。これは 'vImageBoxConvolve_ARGB8888'というシンボルを探しています。このシンボルを持つ.m(または.c)ファイルを含める必要があります。 – rmaddy

+0

これらのリンクを見ると、それらは非常によく似ています: http://stackoverflow.com/questions/22032987/how-to-solve-mach-o-linker-error-in-ios7-xcode-5-0-1 http://stackoverflow.com/questions/20073146/mach-o-linker-error-xcode-5 – user3817794

答えて

40

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

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

この場合、この呼び出しはAccelerateフレームワークに属します。ファイル名を入力してください:

#import <Accelerate/Accelerate.h> 

先頭へ戻る言い換えれば、これはどうやらvImageBoxConvolve_ARGB8888()が定義されていない

+19

これは正確ではありません。このようなリンカーのエラーは、使用しているシンボルを提供するフレームワークやライブラリとリンクできないことが原因です。必要なヘッダーを '#include"または '#import'するのに失敗した場合、'警告:関数の暗黙の宣言 'vImageBoxConvolve_ARGB8888'はC99'で無効です。欠けている '#include'や'#import'を追加すると、コンパイラの警告が処理されますが、リンカのエラーには何も対処しません。 – bdash

+2

これは欠けているフレームワークを見つけ出す良い方法です –

+0

見つからないライブラリが見つからない場合は、どのライブラリが見つからないかを教えてください。 –

11

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

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

それもそのライブラリで必要とされるように、あなたもQuartzCoreフレームワークは、同様に含まれていることを確認します。魚する方法男性(または女性)を教える

+0

Accelerateフレームワークを使用するためにQuartzCoreにリンクする必要はありません。 – bdash

+1

私はそうは言っていませんでした。彼が使用しているライブラリ(RNBlurModalView)は、QuartzCoreとAccelerateの両方が機能することが必要です。 1つが除外されていると、もう1つは残っている可能性が高いので、私はそれを私の答えの注釈として追加しました。 – Xono

+0

+1:これは私のために完全に動作します –

1

を助けvImageBoxConvolve_ARGB8888

希望を検索します。 Accelerateフレームワークがプロジェクトに適切に含まれているかどうかを確認します。

関連する問題