2010-11-22 2 views
2

Xcodeで "既存のフレームワークを追加"すると、私はlibiconvの3つのバージョンを見ることができます。iOSで使用するlibiconvはどれですか?

  1. libiconv.dylib
  2. libiconv.2.dylib

libiconv.2.4.0.dylibこのlink最新かつ最高のは1.13.1であると言います。私はそれが上記の数字と同じだとは思わない。

手がかりはありますか?

答えて

8

/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.0.1/Symbols/usr/lib/フォルダをチェックすると、実際のライブラリであるlibiconv.2.dylibのみが表示されます。 libiconv.dylibとlibiconv.2.4.0.dylibは、libiconv.2.dylibのエイリアス(つまり、UNIXで考えたい場合はシンボリックリンク)です。

だから、分かり次第、リンクする確率はまったくありません。あなたに最も受け入れられる一般性を与えるものへのリンク。したがって、APIの任意のバージョンを処理できる場合は、libiconv.dylibにリンクします。バージョン2のlibiconvにアクセスするAPIが必要な場合はlibiconv.2.dylibにリンクし、特に2.4.0の機能に頼っているのであればlibiconv.2.4.0.dylibにリンクします。私は、UNIXでうまくいく傾向があるように、互換性の要求に応じて将来的に何がdylibのバージョンを提供するのか、実際に提供するのかを変えるかもしれないと思います。現時点ではすべてが学問的です。

私がGoogleから作ることができるものから、libiconv-1.12はlibiconv.2.4.0.dylibをビルドします。私はそのバージョン番号の背後にある根拠やアイデアがどこから来るのかを判断することができません。

+0

ありがとうございます!奇妙なバージョン番号、はい。 – Plumenator

+2

ファイルのバージョン管理は、libのバージョン管理とは関係ありません。これは、バイナリ互換性を保証する単なる方法です。私はそれがautotoolsのルールだと信じています:http://sourceware.org/autobook/autobook/autobook_91.html。 –

関連する問題