2009-07-07 5 views
2

私は今このフレームワークのエラーと数日間戦ってきました。私はiphone3.0sdkからMessageUIフレームワークを組み込み、ヘッダファイル(MessageUI/MessageUI.h)をインポートしましたiphone .objc_class_nameエラー

誰でもこのエラーが何を意味するのではないでしょうか?ここで

collect2: ld returned 1 exit status 
symbol(s) not found 
[email protected][email protected][email protected] 
".objc_class_name_MFMailComposeViewController", referenced from: 

は、ビルドログからいくつかの出力です:

ld warning: in /Users/me/iphone/myApp/MessageUI.framework/MessageUI, missing required architecture i386 in file 
Undefined symbols: 
    ".objc_class_name_MFMailComposeViewController", referenced from: 
     [email protected][email protected][email protected] in myViewController.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

答えて

7

あなたはMessageUI.frameworkにリンクするのを忘れたり、間違ったバージョンにリンクしています。

ここでフレームワークを追加するための正しい方法です:

  1. あなたのターゲットをダブルクリックし
  2. メインタブ
  3. は、フレームワーク部分
にプラスボタンを押すことで、フレームワークを追加]を選択します

これで、シミュレータとデバイス用にビルドできるはずです。

編集:あなたがシミュレータSDKからプロジェクトディレクトリにMessageUI.frameworkをコピーしたよう

LDからの警告が見えます。それを削除すると、ldは正しいSDK(現在のSDKのSDK)を見つけます。

+2

彼の場合、彼はシミュレータのためにビルドするとき、彼はデバイスのARMフレームワークとリンクしていて、i386シミュレータのバージョンはリンクしていないようです。彼はまた、フレームワーク上のパスの種類が "現在のSDKに相対的"であることを確認する必要があります。 –

+0

そのようにフレームワークを追加しようとしました。同じエラー。 SDKに関連するパスは次のとおりです。 /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/MessageUI.framework – sol

0

誤ってiPhone SDKフレームワークをプロジェクトディレクトリ(ディスク上)にコピーしました。プロジェクトディレクトリを開いて(プロジェクトをディスクに保存します)、iPhone SDK Frameworkディレクトリを削除します。

リビルド。

関連する問題