2010-11-22 37 views
2

Lorsque je fais "Ajouter des cadres existants" dans Xcode, je vois trois versions de libiconv.Quelle libiconv devrions-nous utiliser sur iOS?

  1. libiconv.dylib
  2. libiconv.2.dylib
  3. libiconv.2.4.0.dylib

Ce link dit le dernier et le plus grand est 1.13.1. Je ne pense pas que ce soit la même chose que les chiffres ci-dessus.

Des indices?

Répondre

8

En vérifiant le dossier /Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.0.1/Symbols/usr/lib/, le seul de ceux qui est une bibliothèque réelle est libiconv.2.dylib. Les deux libiconv.dylib et libiconv.2.4.0.dylib sont des alias (c'est-à-dire, des liens symboliques si vous préférez penser en termes UNIX) pour libiconv.2.dylib. Donc, à la minute, il n'y aura absolument aucune chance que vous liez à. Lien vers celui qui vous donne la généralité la plus acceptable. Donc, si vous pouvez gérer n'importe quelle version de l'API, lier à libiconv.dylib, si vous avez besoin de l'API qui va avec la version 2 de libiconv, alors lier à libiconv.2.dylib et si vous comptez sur la fonctionnalité dans 2.4.0 spécifiquement Puis lien vers libiconv.2.4.0.dylib. Je suppose que, selon la façon dont les choses ont tendance à fonctionner sous UNIX, Apple peut changer ce qui est un alias pour ce qui est ou ce qui fournit réellement plusieurs versions du dylib à l'avenir comme la compatibilité l'exige. Pour le moment, tout est académique. D'après ce que je peux voir à partir de Google, libiconv-1.12 construit à libiconv.2.4.0.dylib. Je ne suis pas en mesure de déterminer la logique qui sous-tend cette numérotation des versions ou d'où vient l'idée.

+0

Merci! Numérotation de version bizarre, oui. – Plumenator

+2

Le versionnement du fichier n'a rien à voir avec le versionnement de lib. C'est juste un moyen d'assurer la compatibilité binaire. Je crois que c'est la règle des autotools: http://sourceware.org/autobook/autobook/autobook_91.html. –