Le système d'exploitation comporte souvent de nombreuses versions de bibliothèques dynamiques. Ces données sont utilisées par différents programmes en fonction de la bibliothèque dans laquelle ils ont été compilés par contre à leur moment de la compilation, mais lorsque vous compilez vous souhaitez ajouter un lien sur la version qui correspondent à la installé en-têtes qui vous sont y compris/de les importer dans votre code source.
L' libz.dylib
sera un lien vers la même version que votre installés les en-têtes de les utiliser.
Exemple, vous avez 2 versions libXYZ.1.dylib
et libXYZ.2.dylib
, libXYZ.dylib
lien libXYZ.2.dylib
et libXYZ.1.dylib
est un héritage de la lib qui est également disponible dans le système d'exploitation pour les applications compilé et distribué avant libXYZ.2.dylib
a été libéré. L' libXYZ.1.dylib
a été inclus dans le kit de développement car il peut être de vieux cadres qui veulent toujours être lié à l'encontre de l'ancienne version.
Les deux versions peuvent être très similaires interfaces dans l'en-tête de sorte que vous ne verrez pas de différences réelles lorsque vous compilez et exécutez, mais dans de futures versions les plus anciennes versions peuvent être supprimés et de nouveaux sont ajoutés qui feront de votre projet de pause lors de la liaison.
Si je comprends bien droit, l'éditeur de liens de déréférencer des liens vers des fichiers de sorte qu'il va trouver la bonne version et de le garder dylib nom et un lien dynamique contre que lorsque l'application démarre. Si l' libz.dylib
ne sera pas le chemin d'accès utilisé (plus qu'au moment de la compilation).
Je vois cela dans mon Xcode installation dans la 4.3 SDK
/Développeur/.../SDKs/iPhoneOS4.3.sdk/usr/include/zlib.h
/* zlib.h -- interface of the 'zlib' general purpose compression library
version 1.2.3, July 18th, 2005
Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
libz.dylib
/Developer/.../SDKs/iPhoneOS4.3.sdk/usr/lib/libz.dylib -> libz.1.2.3.dylib