web-dev-qa-db-ja.com

libiconvがiOSプロジェクトにリンクしない

私は MailCore を作成しているiOSアプリにコンパイルしようとしていますが、リンカはlibiconvがリンクされていないことを不平を言い続けます。少なくともそれが不平だと私は思います。これはそれが吐き出すものです:

Undefined symbols for architecture i386:
  "_iconv", referenced from:
      _mail_iconv in libmailcore.a(charconv.o)
  "_iconv_open", referenced from:
      _charconv in libmailcore.a(charconv.o)
      _charconv_buffer in libmailcore.a(charconv.o)
  "_iconv_close", referenced from:
      _charconv in libmailcore.a(charconv.o)
      _charconv_buffer in libmailcore.a(charconv.o)
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

(これはシミュレーター用のビルドです。私のiPhone向けのビルドでも同じエラーが発生しますが、s/i386/armv7/)。

追加しようとしましたlibiconv.dylibを「ライブラリとバイナリをリンクする」に変更しますが、エラーはまったく変わりません。

ここで何が間違っているのでしょうか?私はこのエラーをグーグルしようとしましたが、libiconvにリンクする方法に関する情報が見つかりません。 iOS SDKの一部なので、自分でコンパイルする必要はないと思いますか?

25
sarahhodne

Libがターゲットに含まれていることの追加確認として、Xcodeの左ペインのファイルリストでlibを選択します(ターゲット/プロジェクトに追加したと仮定すると、フレームワークの下にリストされているフレームワークが表示されるはずです)。右ペインのアシスタントエディタビュー([表示]-> [アシスタントエディタ]-> [アシスタントエディタを表示])。

次に、左側で関連するライブラリを選択すると、そのライブラリの「ターゲットメンバーシップ」が右側のチェックボックスのリストとして表示されます。

App Target Listedが表示され、そのターゲットのチェックボックスがオンになっているはずです。

あなたはそれをあなたのプロジェクトにナッジするために、それをチェック解除して再チェックすることを試みることができますか?

17
Snips

「フレームワークの追加」を介してlibiconv.dylibを追加する必要があります。 SRCは この説明から入手できます。

67
shuiyouren