- 締切済み
mailを打つアプリを作っているんですけど。
バグが全然消えずエラー内容見ても何が原因かわかりません。 Undefined symbols for architecture i386: "_OBJC_CLASS_$_MFMailComposeViewController", referenced from: objc-class-ref in InstaEmail.o ld: symbol(s) not found for architecture i386 collect2: ld returned 1 exit status エラー内容がわかる人すいませんけど教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
プロジェクトの設定をいろいろ変更していけば対応できるかもしれませんが 新規プロジェクトでiOSのテンプレートを使うのが確実だと思います。 iOSのものが無ければ、iOS SDKをインストールしてください。 こまかいのがよくわからないのなら、iPhoneでの開発を解説した本を買ってきましょう。
- kmee
- ベストアンサー率55% (1857/3366)
まずは「何を使って(OS,コンパイラの種類、ライブラリやSDK)、どこで動く(PC,モバイル機器...)ものを作っているか」明記しましょうよ。 できれば、コンパイルの方法や設定(指定したオプションとか)も。 名前とかアークテクチャから、なんとなく、 MacのObjective-Cのようですが... > ld: symbol(s) not found Cの類では、コンパイルの仕上げに、別にコンパイルしたオブジェクトファイルやライブラリと結合する「リンク」という作業があります。このとき、同じシンボル同士がつながるようにします。 例えば、printfの中身なんて書いたことは無いと思いますが、自作プログラムでは使えているはずです。これは、自作プログラムで「printfを呼ぶ」となっているところと、既に用意してある標準ライブラリの「printf」が結びつけられた結果です。 で、そのシンボルの実体となるものが無い場合に、このsymbol(s) not foundとなります。 通常は、対象の実体の入ったライブラリとかオブジェクトを一緒にリンクすることで解決します。 そう思って、よく見ると > Undefined symbols for architecture i386: > "_OBJC_CLASS_$_MFMailComposeViewController", referenced from: > objc-class-ref in InstaEmail.o とi386用の"_OBJC_CLASS_$_MFMailComposeViewController"が定義されていない、と出ています。 内部の表現で前後にいろいろついてますが、MFMailComposeViewControllerが無いということではないでしょうか。 で。MFMailComposeViewControllerはiPhone/iPad用では無いでしょうか? それに対して、i386だと、Mac本体(32bit IntelCPU)用ということになると思うのですが。 コンパイルの設定間違えてないですか?
補足
早速の回答ありがとうございます。説明不足過ぎですいませんでした。 objective-cでiphoneで動くプログラムをxcodeでつくってます。 コンパイルの設定は何もわからないのでいじってないのですが。どこで設定を変えるのでしょうか?調べてもわからないのですいませんが教えてください。